From 663bde508b0e116ef13e02123ace880658992309 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Fri, 29 Sep 2023 03:52:39 +0000 Subject: [PATCH 1/3] feat: add Network Connectivity Center APIs related to VPC spokes PiperOrigin-RevId: 569346113 Source-Link: https://github.com/googleapis/googleapis/commit/1df1c4f0e34e9d44e45d90ce695f70f47b3d7913 Source-Link: https://github.com/googleapis/googleapis-gen/commit/5ac186aa86be170deb461f71181880900af0176b Copy-Tag: eyJwIjoicGFja2FnZXMvZ29vZ2xlLWNsb3VkLW5ldHdvcmstY29ubmVjdGl2aXR5Ly5Pd2xCb3QueWFtbCIsImgiOiI1YWMxODZhYTg2YmUxNzBkZWI0NjFmNzExODE4ODA5MDBhZjAxNzZiIn0= --- .../v1/.coveragerc | 13 + .../v1/.flake8 | 33 + .../v1/MANIFEST.in | 2 + .../v1/README.rst | 49 + .../v1/docs/_static/custom.css | 3 + .../v1/docs/conf.py | 376 + .../v1/docs/index.rst | 7 + .../networkconnectivity_v1/hub_service.rst | 10 + .../policy_based_routing_service.rst | 10 + .../docs/networkconnectivity_v1/services.rst | 7 + .../v1/docs/networkconnectivity_v1/types.rst | 6 + .../cloud/networkconnectivity/__init__.py | 135 + .../networkconnectivity/gapic_version.py | 16 + .../google/cloud/networkconnectivity/py.typed | 2 + .../cloud/networkconnectivity_v1/__init__.py | 136 + .../gapic_metadata.json | 267 + .../networkconnectivity_v1/gapic_version.py | 16 + .../cloud/networkconnectivity_v1/py.typed | 2 + .../services/__init__.py | 15 + .../services/hub_service/__init__.py | 22 + .../services/hub_service/async_client.py | 3100 ++++++ .../services/hub_service/client.py | 3369 +++++++ .../services/hub_service/pagers.py | 744 ++ .../hub_service/transports/__init__.py | 33 + .../services/hub_service/transports/base.py | 493 + .../services/hub_service/transports/grpc.py | 960 ++ .../hub_service/transports/grpc_asyncio.py | 959 ++ .../policy_based_routing_service/__init__.py | 22 + .../async_client.py | 1297 +++ .../policy_based_routing_service/client.py | 1503 +++ .../policy_based_routing_service/pagers.py | 139 + .../transports/__init__.py | 33 + .../transports/base.py | 282 + .../transports/grpc.py | 555 ++ .../transports/grpc_asyncio.py | 554 ++ .../networkconnectivity_v1/types/__init__.py | 128 + .../networkconnectivity_v1/types/common.py | 95 + .../cloud/networkconnectivity_v1/types/hub.py | 2030 ++++ .../types/policy_based_routing.py | 530 ++ .../v1/mypy.ini | 3 + .../v1/noxfile.py | 184 + ...ated_hub_service_accept_hub_spoke_async.py | 57 + ...rated_hub_service_accept_hub_spoke_sync.py | 57 + ..._generated_hub_service_create_hub_async.py | 57 + ...1_generated_hub_service_create_hub_sync.py | 57 + ...enerated_hub_service_create_spoke_async.py | 57 + ...generated_hub_service_create_spoke_sync.py | 57 + ..._generated_hub_service_delete_hub_async.py | 56 + ...1_generated_hub_service_delete_hub_sync.py | 56 + ...enerated_hub_service_delete_spoke_async.py | 56 + ...generated_hub_service_delete_spoke_sync.py | 56 + ...1_generated_hub_service_get_group_async.py | 52 + ...v1_generated_hub_service_get_group_sync.py | 52 + ..._v1_generated_hub_service_get_hub_async.py | 52 + ...y_v1_generated_hub_service_get_hub_sync.py | 52 + ...1_generated_hub_service_get_route_async.py | 52 + ...v1_generated_hub_service_get_route_sync.py | 52 + ...rated_hub_service_get_route_table_async.py | 52 + ...erated_hub_service_get_route_table_sync.py | 52 + ...1_generated_hub_service_get_spoke_async.py | 52 + ...v1_generated_hub_service_get_spoke_sync.py | 52 + ...generated_hub_service_list_groups_async.py | 53 + ..._generated_hub_service_list_groups_sync.py | 53 + ...rated_hub_service_list_hub_spokes_async.py | 53 + ...erated_hub_service_list_hub_spokes_sync.py | 53 + ...1_generated_hub_service_list_hubs_async.py | 53 + ...v1_generated_hub_service_list_hubs_sync.py | 53 + ...ted_hub_service_list_route_tables_async.py | 53 + ...ated_hub_service_list_route_tables_sync.py | 53 + ...generated_hub_service_list_routes_async.py | 53 + ..._generated_hub_service_list_routes_sync.py | 53 + ...generated_hub_service_list_spokes_async.py | 53 + ..._generated_hub_service_list_spokes_sync.py | 53 + ...ated_hub_service_reject_hub_spoke_async.py | 57 + ...rated_hub_service_reject_hub_spoke_sync.py | 57 + ..._generated_hub_service_update_hub_async.py | 55 + ...1_generated_hub_service_update_hub_sync.py | 55 + ...enerated_hub_service_update_spoke_async.py | 55 + ...generated_hub_service_update_spoke_sync.py | 55 + ...service_create_policy_based_route_async.py | 63 + ..._service_create_policy_based_route_sync.py | 63 + ...service_delete_policy_based_route_async.py | 56 + ..._service_delete_policy_based_route_sync.py | 56 + ...ng_service_get_policy_based_route_async.py | 52 + ...ing_service_get_policy_based_route_sync.py | 52 + ..._service_list_policy_based_routes_async.py | 53 + ...g_service_list_policy_based_routes_sync.py | 53 + ...a_google.cloud.networkconnectivity.v1.json | 3798 ++++++++ .../fixup_networkconnectivity_v1_keywords.py | 198 + .../v1/setup.py | 91 + .../v1/testing/constraints-3.10.txt | 7 + .../v1/testing/constraints-3.11.txt | 7 + .../v1/testing/constraints-3.12.txt | 7 + .../v1/testing/constraints-3.7.txt | 10 + .../v1/testing/constraints-3.8.txt | 7 + .../v1/testing/constraints-3.9.txt | 7 + .../v1/tests/__init__.py | 16 + .../v1/tests/unit/__init__.py | 16 + .../v1/tests/unit/gapic/__init__.py | 16 + .../gapic/networkconnectivity_v1/__init__.py | 16 + .../test_hub_service.py | 8386 +++++++++++++++++ .../test_policy_based_routing_service.py | 3640 +++++++ .../v1alpha1/.coveragerc | 13 + .../v1alpha1/.flake8 | 33 + .../v1alpha1/MANIFEST.in | 2 + .../v1alpha1/README.rst | 49 + .../v1alpha1/docs/_static/custom.css | 3 + .../v1alpha1/docs/conf.py | 376 + .../v1alpha1/docs/index.rst | 7 + .../hub_service.rst | 10 + .../networkconnectivity_v1alpha1/services.rst | 6 + .../networkconnectivity_v1alpha1/types.rst | 6 + .../cloud/networkconnectivity/__init__.py | 61 + .../networkconnectivity/gapic_version.py | 16 + .../google/cloud/networkconnectivity/py.typed | 2 + .../networkconnectivity_v1alpha1/__init__.py | 62 + .../gapic_metadata.json | 123 + .../gapic_version.py | 16 + .../networkconnectivity_v1alpha1/py.typed | 2 + .../services/__init__.py | 15 + .../services/hub_service/__init__.py | 22 + .../services/hub_service/async_client.py | 1437 +++ .../services/hub_service/client.py | 1675 ++++ .../services/hub_service/pagers.py | 260 + .../hub_service/transports/__init__.py | 33 + .../services/hub_service/transports/base.py | 282 + .../services/hub_service/transports/grpc.py | 521 + .../hub_service/transports/grpc_asyncio.py | 520 + .../types/__init__.py | 56 + .../types/common.py | 95 + .../networkconnectivity_v1alpha1/types/hub.py | 731 ++ .../v1alpha1/mypy.ini | 3 + .../v1alpha1/noxfile.py | 184 + ..._generated_hub_service_create_hub_async.py | 56 + ...1_generated_hub_service_create_hub_sync.py | 56 + ...enerated_hub_service_create_spoke_async.py | 56 + ...generated_hub_service_create_spoke_sync.py | 56 + ..._generated_hub_service_delete_hub_async.py | 56 + ...1_generated_hub_service_delete_hub_sync.py | 56 + ...enerated_hub_service_delete_spoke_async.py | 56 + ...generated_hub_service_delete_spoke_sync.py | 56 + ...ha1_generated_hub_service_get_hub_async.py | 52 + ...pha1_generated_hub_service_get_hub_sync.py | 52 + ...1_generated_hub_service_get_spoke_async.py | 52 + ...a1_generated_hub_service_get_spoke_sync.py | 52 + ...1_generated_hub_service_list_hubs_async.py | 53 + ...a1_generated_hub_service_list_hubs_sync.py | 53 + ...generated_hub_service_list_spokes_async.py | 53 + ..._generated_hub_service_list_spokes_sync.py | 53 + ..._generated_hub_service_update_hub_async.py | 55 + ...1_generated_hub_service_update_hub_sync.py | 55 + ...enerated_hub_service_update_spoke_async.py | 55 + ...generated_hub_service_update_spoke_sync.py | 55 + ...le.cloud.networkconnectivity.v1alpha1.json | 1673 ++++ ...p_networkconnectivity_v1alpha1_keywords.py | 185 + .../v1alpha1/setup.py | 90 + .../v1alpha1/testing/constraints-3.10.txt | 6 + .../v1alpha1/testing/constraints-3.11.txt | 6 + .../v1alpha1/testing/constraints-3.12.txt | 6 + .../v1alpha1/testing/constraints-3.7.txt | 9 + .../v1alpha1/testing/constraints-3.8.txt | 6 + .../v1alpha1/testing/constraints-3.9.txt | 6 + .../v1alpha1/tests/__init__.py | 16 + .../v1alpha1/tests/unit/__init__.py | 16 + .../v1alpha1/tests/unit/gapic/__init__.py | 16 + .../networkconnectivity_v1alpha1/__init__.py | 16 + .../test_hub_service.py | 4099 ++++++++ 167 files changed, 50725 insertions(+) create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/.coveragerc create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/.flake8 create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/MANIFEST.in create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/README.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/_static/custom.css create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/conf.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/index.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/hub_service.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/policy_based_routing_service.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/services.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/types.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/gapic_version.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/py.typed create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_metadata.json create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_version.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/py.typed create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/client.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/async_client.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/client.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/pagers.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/base.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc_asyncio.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/common.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/hub.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/policy_based_routing.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/mypy.ini create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/noxfile.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/scripts/fixup_networkconnectivity_v1_keywords.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/setup.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.10.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.11.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.12.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.7.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.8.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.9.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_policy_based_routing_service.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.coveragerc create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.flake8 create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/MANIFEST.in create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/README.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/_static/custom.css create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/conf.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/index.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/hub_service.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/services.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/types.rst create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/gapic_version.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/py.typed create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_metadata.json create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_version.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/py.typed create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/pagers.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/common.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/hub.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/mypy.ini create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/noxfile.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/scripts/fixup_networkconnectivity_v1alpha1_keywords.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/setup.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.10.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.11.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.12.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.7.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.8.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.9.txt create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/__init__.py create mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/.coveragerc b/owl-bot-staging/google-cloud-network-connectivity/v1/.coveragerc new file mode 100644 index 000000000000..068c27e778ef --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/.coveragerc @@ -0,0 +1,13 @@ +[run] +branch = True + +[report] +show_missing = True +omit = + google/cloud/networkconnectivity/__init__.py + google/cloud/networkconnectivity/gapic_version.py +exclude_lines = + # Re-enable the standard pragma + pragma: NO COVER + # Ignore debug-only repr + def __repr__ diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/.flake8 b/owl-bot-staging/google-cloud-network-connectivity/v1/.flake8 new file mode 100644 index 000000000000..29227d4cf419 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/.flake8 @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 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 +# +# https://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 by synthtool. DO NOT EDIT! +[flake8] +ignore = E203, E266, E501, W503 +exclude = + # Exclude generated code. + **/proto/** + **/gapic/** + **/services/** + **/types/** + *_pb2.py + + # Standard linting exemptions. + **/.nox/** + __pycache__, + .git, + *.pyc, + conf.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/MANIFEST.in b/owl-bot-staging/google-cloud-network-connectivity/v1/MANIFEST.in new file mode 100644 index 000000000000..6ddee814ee34 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/MANIFEST.in @@ -0,0 +1,2 @@ +recursive-include google/cloud/networkconnectivity *.py +recursive-include google/cloud/networkconnectivity_v1 *.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/README.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/README.rst new file mode 100644 index 000000000000..d9dfc30e72fc --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/README.rst @@ -0,0 +1,49 @@ +Python Client for Google Cloud Networkconnectivity API +================================================= + +Quick Start +----------- + +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 Google Cloud Networkconnectivity API. +4. `Setup 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 +.. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html + +Installation +~~~~~~~~~~~~ + +Install this library in a `virtualenv`_ using pip. `virtualenv`_ is a tool to +create isolated Python environments. The basic problem it addresses is one of +dependencies and versions, and indirectly permissions. + +With `virtualenv`_, it's possible to install this library without needing system +install permissions, and without clashing with the installed system +dependencies. + +.. _`virtualenv`: https://virtualenv.pypa.io/en/latest/ + + +Mac/Linux +^^^^^^^^^ + +.. code-block:: console + + python3 -m venv + source /bin/activate + /bin/pip install /path/to/library + + +Windows +^^^^^^^ + +.. code-block:: console + + python3 -m venv + \Scripts\activate + \Scripts\pip.exe install \path\to\library diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/_static/custom.css b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/_static/custom.css new file mode 100644 index 000000000000..06423be0b592 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/_static/custom.css @@ -0,0 +1,3 @@ +dl.field-list > dt { + min-width: 100px +} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/conf.py b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/conf.py new file mode 100644 index 000000000000..8ab4790aa30b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/conf.py @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +# +# google-cloud-network-connectivity documentation build configuration file +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys +import os +import shlex + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath("..")) + +__version__ = "0.1.0" + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +needs_sphinx = "4.0.1" + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.todo", + "sphinx.ext.viewcode", +] + +# autodoc/autosummary flags +autoclass_content = "both" +autodoc_default_flags = ["members"] +autosummary_generate = True + + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# Allow markdown includes (so releases.md can include CHANGLEOG.md) +# http://www.sphinx-doc.org/en/master/markdown.html +source_parsers = {".md": "recommonmark.parser.CommonMarkParser"} + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +source_suffix = [".rst", ".md"] + +# The encoding of source files. +# source_encoding = 'utf-8-sig' + +# The root toctree document. +root_doc = "index" + +# General information about the project. +project = u"google-cloud-network-connectivity" +copyright = u"2023, Google, LLC" +author = u"Google APIs" # TODO: autogenerate this bit + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The full version, including alpha/beta/rc tags. +release = __version__ +# The short X.Y version. +version = ".".join(release.split(".")[0:2]) + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = 'en' + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +# today = '' +# Else, today_fmt is used as the format for a strftime call. +# today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ["_build"] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +# default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +# add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +# add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +# show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = "sphinx" + +# A list of ignored prefixes for module index sorting. +# modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +# keep_warnings = False + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = "alabaster" + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = { + "description": "Google Cloud Client Libraries for Python", + "github_user": "googleapis", + "github_repo": "google-cloud-python", + "github_banner": True, + "font_family": "'Roboto', Georgia, sans", + "head_font_family": "'Roboto', Georgia, serif", + "code_font_family": "'Roboto Mono', 'Consolas', monospace", +} + +# Add any paths that contain custom themes here, relative to this directory. +# html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +# html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +# html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +# html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +# html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +# html_extra_path = [] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +# html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +# html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +# html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +# html_additional_pages = {} + +# If false, no module index is generated. +# html_domain_indices = True + +# If false, no index is generated. +# html_use_index = True + +# If true, the index is split into individual pages for each letter. +# html_split_index = False + +# If true, links to the reST sources are added to the pages. +# html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +# html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +# html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +# html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +# html_file_suffix = None + +# Language to be used for generating the HTML full-text search index. +# Sphinx supports the following languages: +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' +# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' +# html_search_language = 'en' + +# A dictionary with options for the search language support, empty by default. +# Now only 'ja' uses this config value +# html_search_options = {'type': 'default'} + +# The name of a javascript file (relative to the configuration directory) that +# implements a search results scorer. If empty, the default will be used. +# html_search_scorer = 'scorer.js' + +# Output file base name for HTML help builder. +htmlhelp_basename = "google-cloud-network-connectivity-doc" + +# -- Options for warnings ------------------------------------------------------ + + +suppress_warnings = [ + # Temporarily suppress this to avoid "more than one target found for + # cross-reference" warning, which are intractable for us to avoid while in + # a mono-repo. + # See https://github.com/sphinx-doc/sphinx/blob + # /2a65ffeef5c107c19084fabdd706cdff3f52d93c/sphinx/domains/python.py#L843 + "ref.python" +] + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # 'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + # 'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + # 'preamble': '', + # Latex figure (float) alignment + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + ( + root_doc, + "google-cloud-network-connectivity.tex", + u"google-cloud-network-connectivity Documentation", + author, + "manual", + ) +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +# latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +# latex_use_parts = False + +# If true, show page references after internal links. +# latex_show_pagerefs = False + +# If true, show URL addresses after external links. +# latex_show_urls = False + +# Documents to append as an appendix to all manuals. +# latex_appendices = [] + +# If false, no module index is generated. +# latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ( + root_doc, + "google-cloud-network-connectivity", + u"Google Cloud Networkconnectivity Documentation", + [author], + 1, + ) +] + +# If true, show URL addresses after external links. +# man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ( + root_doc, + "google-cloud-network-connectivity", + u"google-cloud-network-connectivity Documentation", + author, + "google-cloud-network-connectivity", + "GAPIC library for Google Cloud Networkconnectivity API", + "APIs", + ) +] + +# Documents to append as an appendix to all manuals. +# texinfo_appendices = [] + +# If false, no module index is generated. +# texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +# texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +# texinfo_no_detailmenu = False + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), + "google-auth": ("https://google-auth.readthedocs.io/en/stable", None), + "google-gax": ("https://gax-python.readthedocs.io/en/latest/", None), + "google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None), + "grpc": ("https://grpc.io/grpc/python/", None), + "requests": ("http://requests.kennethreitz.org/en/stable/", None), + "proto": ("https://proto-plus-python.readthedocs.io/en/stable", None), + "protobuf": ("https://googleapis.dev/python/protobuf/latest/", None), +} + + +# Napoleon settings +napoleon_google_docstring = True +napoleon_numpy_docstring = True +napoleon_include_private_with_doc = False +napoleon_include_special_with_doc = True +napoleon_use_admonition_for_examples = False +napoleon_use_admonition_for_notes = False +napoleon_use_admonition_for_references = False +napoleon_use_ivar = False +napoleon_use_param = True +napoleon_use_rtype = True diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/index.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/index.rst new file mode 100644 index 000000000000..e09dd3465543 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/index.rst @@ -0,0 +1,7 @@ +API Reference +------------- +.. toctree:: + :maxdepth: 2 + + networkconnectivity_v1/services + networkconnectivity_v1/types diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/hub_service.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/hub_service.rst new file mode 100644 index 000000000000..7dbce3db8f35 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/hub_service.rst @@ -0,0 +1,10 @@ +HubService +---------------------------- + +.. automodule:: google.cloud.networkconnectivity_v1.services.hub_service + :members: + :inherited-members: + +.. automodule:: google.cloud.networkconnectivity_v1.services.hub_service.pagers + :members: + :inherited-members: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/policy_based_routing_service.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/policy_based_routing_service.rst new file mode 100644 index 000000000000..8991d76d5f39 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/policy_based_routing_service.rst @@ -0,0 +1,10 @@ +PolicyBasedRoutingService +------------------------------------------- + +.. automodule:: google.cloud.networkconnectivity_v1.services.policy_based_routing_service + :members: + :inherited-members: + +.. automodule:: google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers + :members: + :inherited-members: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/services.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/services.rst new file mode 100644 index 000000000000..a2c404757276 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/services.rst @@ -0,0 +1,7 @@ +Services for Google Cloud Networkconnectivity v1 API +==================================================== +.. toctree:: + :maxdepth: 2 + + hub_service + policy_based_routing_service diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/types.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/types.rst new file mode 100644 index 000000000000..f12678cc8797 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/types.rst @@ -0,0 +1,6 @@ +Types for Google Cloud Networkconnectivity v1 API +================================================= + +.. automodule:: google.cloud.networkconnectivity_v1.types + :members: + :show-inheritance: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/__init__.py new file mode 100644 index 000000000000..092015bd7ad3 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/__init__.py @@ -0,0 +1,135 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from google.cloud.networkconnectivity import gapic_version as package_version + +__version__ = package_version.__version__ + + +from google.cloud.networkconnectivity_v1.services.hub_service.client import HubServiceClient +from google.cloud.networkconnectivity_v1.services.hub_service.async_client import HubServiceAsyncClient +from google.cloud.networkconnectivity_v1.services.policy_based_routing_service.client import PolicyBasedRoutingServiceClient +from google.cloud.networkconnectivity_v1.services.policy_based_routing_service.async_client import PolicyBasedRoutingServiceAsyncClient + +from google.cloud.networkconnectivity_v1.types.common import OperationMetadata +from google.cloud.networkconnectivity_v1.types.hub import AcceptHubSpokeRequest +from google.cloud.networkconnectivity_v1.types.hub import AcceptHubSpokeResponse +from google.cloud.networkconnectivity_v1.types.hub import CreateHubRequest +from google.cloud.networkconnectivity_v1.types.hub import CreateSpokeRequest +from google.cloud.networkconnectivity_v1.types.hub import DeleteHubRequest +from google.cloud.networkconnectivity_v1.types.hub import DeleteSpokeRequest +from google.cloud.networkconnectivity_v1.types.hub import GetGroupRequest +from google.cloud.networkconnectivity_v1.types.hub import GetHubRequest +from google.cloud.networkconnectivity_v1.types.hub import GetRouteRequest +from google.cloud.networkconnectivity_v1.types.hub import GetRouteTableRequest +from google.cloud.networkconnectivity_v1.types.hub import GetSpokeRequest +from google.cloud.networkconnectivity_v1.types.hub import Group +from google.cloud.networkconnectivity_v1.types.hub import Hub +from google.cloud.networkconnectivity_v1.types.hub import LinkedInterconnectAttachments +from google.cloud.networkconnectivity_v1.types.hub import LinkedRouterApplianceInstances +from google.cloud.networkconnectivity_v1.types.hub import LinkedVpcNetwork +from google.cloud.networkconnectivity_v1.types.hub import LinkedVpnTunnels +from google.cloud.networkconnectivity_v1.types.hub import ListGroupsRequest +from google.cloud.networkconnectivity_v1.types.hub import ListGroupsResponse +from google.cloud.networkconnectivity_v1.types.hub import ListHubSpokesRequest +from google.cloud.networkconnectivity_v1.types.hub import ListHubSpokesResponse +from google.cloud.networkconnectivity_v1.types.hub import ListHubsRequest +from google.cloud.networkconnectivity_v1.types.hub import ListHubsResponse +from google.cloud.networkconnectivity_v1.types.hub import ListRoutesRequest +from google.cloud.networkconnectivity_v1.types.hub import ListRoutesResponse +from google.cloud.networkconnectivity_v1.types.hub import ListRouteTablesRequest +from google.cloud.networkconnectivity_v1.types.hub import ListRouteTablesResponse +from google.cloud.networkconnectivity_v1.types.hub import ListSpokesRequest +from google.cloud.networkconnectivity_v1.types.hub import ListSpokesResponse +from google.cloud.networkconnectivity_v1.types.hub import LocationMetadata +from google.cloud.networkconnectivity_v1.types.hub import NextHopVpcNetwork +from google.cloud.networkconnectivity_v1.types.hub import RejectHubSpokeRequest +from google.cloud.networkconnectivity_v1.types.hub import RejectHubSpokeResponse +from google.cloud.networkconnectivity_v1.types.hub import Route +from google.cloud.networkconnectivity_v1.types.hub import RouterApplianceInstance +from google.cloud.networkconnectivity_v1.types.hub import RouteTable +from google.cloud.networkconnectivity_v1.types.hub import RoutingVPC +from google.cloud.networkconnectivity_v1.types.hub import Spoke +from google.cloud.networkconnectivity_v1.types.hub import SpokeSummary +from google.cloud.networkconnectivity_v1.types.hub import UpdateHubRequest +from google.cloud.networkconnectivity_v1.types.hub import UpdateSpokeRequest +from google.cloud.networkconnectivity_v1.types.hub import LocationFeature +from google.cloud.networkconnectivity_v1.types.hub import RouteType +from google.cloud.networkconnectivity_v1.types.hub import SpokeType +from google.cloud.networkconnectivity_v1.types.hub import State +from google.cloud.networkconnectivity_v1.types.policy_based_routing import CreatePolicyBasedRouteRequest +from google.cloud.networkconnectivity_v1.types.policy_based_routing import DeletePolicyBasedRouteRequest +from google.cloud.networkconnectivity_v1.types.policy_based_routing import GetPolicyBasedRouteRequest +from google.cloud.networkconnectivity_v1.types.policy_based_routing import ListPolicyBasedRoutesRequest +from google.cloud.networkconnectivity_v1.types.policy_based_routing import ListPolicyBasedRoutesResponse +from google.cloud.networkconnectivity_v1.types.policy_based_routing import PolicyBasedRoute + +__all__ = ('HubServiceClient', + 'HubServiceAsyncClient', + 'PolicyBasedRoutingServiceClient', + 'PolicyBasedRoutingServiceAsyncClient', + 'OperationMetadata', + 'AcceptHubSpokeRequest', + 'AcceptHubSpokeResponse', + 'CreateHubRequest', + 'CreateSpokeRequest', + 'DeleteHubRequest', + 'DeleteSpokeRequest', + 'GetGroupRequest', + 'GetHubRequest', + 'GetRouteRequest', + 'GetRouteTableRequest', + 'GetSpokeRequest', + 'Group', + 'Hub', + 'LinkedInterconnectAttachments', + 'LinkedRouterApplianceInstances', + 'LinkedVpcNetwork', + 'LinkedVpnTunnels', + 'ListGroupsRequest', + 'ListGroupsResponse', + 'ListHubSpokesRequest', + 'ListHubSpokesResponse', + 'ListHubsRequest', + 'ListHubsResponse', + 'ListRoutesRequest', + 'ListRoutesResponse', + 'ListRouteTablesRequest', + 'ListRouteTablesResponse', + 'ListSpokesRequest', + 'ListSpokesResponse', + 'LocationMetadata', + 'NextHopVpcNetwork', + 'RejectHubSpokeRequest', + 'RejectHubSpokeResponse', + 'Route', + 'RouterApplianceInstance', + 'RouteTable', + 'RoutingVPC', + 'Spoke', + 'SpokeSummary', + 'UpdateHubRequest', + 'UpdateSpokeRequest', + 'LocationFeature', + 'RouteType', + 'SpokeType', + 'State', + 'CreatePolicyBasedRouteRequest', + 'DeletePolicyBasedRouteRequest', + 'GetPolicyBasedRouteRequest', + 'ListPolicyBasedRoutesRequest', + 'ListPolicyBasedRoutesResponse', + 'PolicyBasedRoute', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/gapic_version.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/gapic_version.py new file mode 100644 index 000000000000..360a0d13ebdd --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +__version__ = "0.0.0" # {x-release-please-version} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/py.typed b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/py.typed new file mode 100644 index 000000000000..cf2368140f5e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/py.typed @@ -0,0 +1,2 @@ +# Marker file for PEP 561. +# The google-cloud-network-connectivity package uses inline types. diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/__init__.py new file mode 100644 index 000000000000..1691495ad6f1 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/__init__.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from google.cloud.networkconnectivity_v1 import gapic_version as package_version + +__version__ = package_version.__version__ + + +from .services.hub_service import HubServiceClient +from .services.hub_service import HubServiceAsyncClient +from .services.policy_based_routing_service import PolicyBasedRoutingServiceClient +from .services.policy_based_routing_service import PolicyBasedRoutingServiceAsyncClient + +from .types.common import OperationMetadata +from .types.hub import AcceptHubSpokeRequest +from .types.hub import AcceptHubSpokeResponse +from .types.hub import CreateHubRequest +from .types.hub import CreateSpokeRequest +from .types.hub import DeleteHubRequest +from .types.hub import DeleteSpokeRequest +from .types.hub import GetGroupRequest +from .types.hub import GetHubRequest +from .types.hub import GetRouteRequest +from .types.hub import GetRouteTableRequest +from .types.hub import GetSpokeRequest +from .types.hub import Group +from .types.hub import Hub +from .types.hub import LinkedInterconnectAttachments +from .types.hub import LinkedRouterApplianceInstances +from .types.hub import LinkedVpcNetwork +from .types.hub import LinkedVpnTunnels +from .types.hub import ListGroupsRequest +from .types.hub import ListGroupsResponse +from .types.hub import ListHubSpokesRequest +from .types.hub import ListHubSpokesResponse +from .types.hub import ListHubsRequest +from .types.hub import ListHubsResponse +from .types.hub import ListRoutesRequest +from .types.hub import ListRoutesResponse +from .types.hub import ListRouteTablesRequest +from .types.hub import ListRouteTablesResponse +from .types.hub import ListSpokesRequest +from .types.hub import ListSpokesResponse +from .types.hub import LocationMetadata +from .types.hub import NextHopVpcNetwork +from .types.hub import RejectHubSpokeRequest +from .types.hub import RejectHubSpokeResponse +from .types.hub import Route +from .types.hub import RouterApplianceInstance +from .types.hub import RouteTable +from .types.hub import RoutingVPC +from .types.hub import Spoke +from .types.hub import SpokeSummary +from .types.hub import UpdateHubRequest +from .types.hub import UpdateSpokeRequest +from .types.hub import LocationFeature +from .types.hub import RouteType +from .types.hub import SpokeType +from .types.hub import State +from .types.policy_based_routing import CreatePolicyBasedRouteRequest +from .types.policy_based_routing import DeletePolicyBasedRouteRequest +from .types.policy_based_routing import GetPolicyBasedRouteRequest +from .types.policy_based_routing import ListPolicyBasedRoutesRequest +from .types.policy_based_routing import ListPolicyBasedRoutesResponse +from .types.policy_based_routing import PolicyBasedRoute + +__all__ = ( + 'HubServiceAsyncClient', + 'PolicyBasedRoutingServiceAsyncClient', +'AcceptHubSpokeRequest', +'AcceptHubSpokeResponse', +'CreateHubRequest', +'CreatePolicyBasedRouteRequest', +'CreateSpokeRequest', +'DeleteHubRequest', +'DeletePolicyBasedRouteRequest', +'DeleteSpokeRequest', +'GetGroupRequest', +'GetHubRequest', +'GetPolicyBasedRouteRequest', +'GetRouteRequest', +'GetRouteTableRequest', +'GetSpokeRequest', +'Group', +'Hub', +'HubServiceClient', +'LinkedInterconnectAttachments', +'LinkedRouterApplianceInstances', +'LinkedVpcNetwork', +'LinkedVpnTunnels', +'ListGroupsRequest', +'ListGroupsResponse', +'ListHubSpokesRequest', +'ListHubSpokesResponse', +'ListHubsRequest', +'ListHubsResponse', +'ListPolicyBasedRoutesRequest', +'ListPolicyBasedRoutesResponse', +'ListRouteTablesRequest', +'ListRouteTablesResponse', +'ListRoutesRequest', +'ListRoutesResponse', +'ListSpokesRequest', +'ListSpokesResponse', +'LocationFeature', +'LocationMetadata', +'NextHopVpcNetwork', +'OperationMetadata', +'PolicyBasedRoute', +'PolicyBasedRoutingServiceClient', +'RejectHubSpokeRequest', +'RejectHubSpokeResponse', +'Route', +'RouteTable', +'RouteType', +'RouterApplianceInstance', +'RoutingVPC', +'Spoke', +'SpokeSummary', +'SpokeType', +'State', +'UpdateHubRequest', +'UpdateSpokeRequest', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_metadata.json b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_metadata.json new file mode 100644 index 000000000000..913e687b84bb --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_metadata.json @@ -0,0 +1,267 @@ + { + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", + "language": "python", + "libraryPackage": "google.cloud.networkconnectivity_v1", + "protoPackage": "google.cloud.networkconnectivity.v1", + "schema": "1.0", + "services": { + "HubService": { + "clients": { + "grpc": { + "libraryClient": "HubServiceClient", + "rpcs": { + "AcceptHubSpoke": { + "methods": [ + "accept_hub_spoke" + ] + }, + "CreateHub": { + "methods": [ + "create_hub" + ] + }, + "CreateSpoke": { + "methods": [ + "create_spoke" + ] + }, + "DeleteHub": { + "methods": [ + "delete_hub" + ] + }, + "DeleteSpoke": { + "methods": [ + "delete_spoke" + ] + }, + "GetGroup": { + "methods": [ + "get_group" + ] + }, + "GetHub": { + "methods": [ + "get_hub" + ] + }, + "GetRoute": { + "methods": [ + "get_route" + ] + }, + "GetRouteTable": { + "methods": [ + "get_route_table" + ] + }, + "GetSpoke": { + "methods": [ + "get_spoke" + ] + }, + "ListGroups": { + "methods": [ + "list_groups" + ] + }, + "ListHubSpokes": { + "methods": [ + "list_hub_spokes" + ] + }, + "ListHubs": { + "methods": [ + "list_hubs" + ] + }, + "ListRouteTables": { + "methods": [ + "list_route_tables" + ] + }, + "ListRoutes": { + "methods": [ + "list_routes" + ] + }, + "ListSpokes": { + "methods": [ + "list_spokes" + ] + }, + "RejectHubSpoke": { + "methods": [ + "reject_hub_spoke" + ] + }, + "UpdateHub": { + "methods": [ + "update_hub" + ] + }, + "UpdateSpoke": { + "methods": [ + "update_spoke" + ] + } + } + }, + "grpc-async": { + "libraryClient": "HubServiceAsyncClient", + "rpcs": { + "AcceptHubSpoke": { + "methods": [ + "accept_hub_spoke" + ] + }, + "CreateHub": { + "methods": [ + "create_hub" + ] + }, + "CreateSpoke": { + "methods": [ + "create_spoke" + ] + }, + "DeleteHub": { + "methods": [ + "delete_hub" + ] + }, + "DeleteSpoke": { + "methods": [ + "delete_spoke" + ] + }, + "GetGroup": { + "methods": [ + "get_group" + ] + }, + "GetHub": { + "methods": [ + "get_hub" + ] + }, + "GetRoute": { + "methods": [ + "get_route" + ] + }, + "GetRouteTable": { + "methods": [ + "get_route_table" + ] + }, + "GetSpoke": { + "methods": [ + "get_spoke" + ] + }, + "ListGroups": { + "methods": [ + "list_groups" + ] + }, + "ListHubSpokes": { + "methods": [ + "list_hub_spokes" + ] + }, + "ListHubs": { + "methods": [ + "list_hubs" + ] + }, + "ListRouteTables": { + "methods": [ + "list_route_tables" + ] + }, + "ListRoutes": { + "methods": [ + "list_routes" + ] + }, + "ListSpokes": { + "methods": [ + "list_spokes" + ] + }, + "RejectHubSpoke": { + "methods": [ + "reject_hub_spoke" + ] + }, + "UpdateHub": { + "methods": [ + "update_hub" + ] + }, + "UpdateSpoke": { + "methods": [ + "update_spoke" + ] + } + } + } + } + }, + "PolicyBasedRoutingService": { + "clients": { + "grpc": { + "libraryClient": "PolicyBasedRoutingServiceClient", + "rpcs": { + "CreatePolicyBasedRoute": { + "methods": [ + "create_policy_based_route" + ] + }, + "DeletePolicyBasedRoute": { + "methods": [ + "delete_policy_based_route" + ] + }, + "GetPolicyBasedRoute": { + "methods": [ + "get_policy_based_route" + ] + }, + "ListPolicyBasedRoutes": { + "methods": [ + "list_policy_based_routes" + ] + } + } + }, + "grpc-async": { + "libraryClient": "PolicyBasedRoutingServiceAsyncClient", + "rpcs": { + "CreatePolicyBasedRoute": { + "methods": [ + "create_policy_based_route" + ] + }, + "DeletePolicyBasedRoute": { + "methods": [ + "delete_policy_based_route" + ] + }, + "GetPolicyBasedRoute": { + "methods": [ + "get_policy_based_route" + ] + }, + "ListPolicyBasedRoutes": { + "methods": [ + "list_policy_based_routes" + ] + } + } + } + } + } + } +} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_version.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_version.py new file mode 100644 index 000000000000..360a0d13ebdd --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +__version__ = "0.0.0" # {x-release-please-version} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/py.typed b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/py.typed new file mode 100644 index 000000000000..cf2368140f5e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/py.typed @@ -0,0 +1,2 @@ +# Marker file for PEP 561. +# The google-cloud-network-connectivity package uses inline types. diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/__init__.py new file mode 100644 index 000000000000..89a37dc92c5a --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/__init__.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/__init__.py new file mode 100644 index 000000000000..3baa4e89a4e6 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from .client import HubServiceClient +from .async_client import HubServiceAsyncClient + +__all__ = ( + 'HubServiceClient', + 'HubServiceAsyncClient', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py new file mode 100644 index 000000000000..bd329a1a0fe4 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py @@ -0,0 +1,3100 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from collections import OrderedDict +import functools +import re +from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union + +from google.cloud.networkconnectivity_v1 import gapic_version as package_version + +from google.api_core.client_options import ClientOptions +from google.api_core import exceptions as core_exceptions +from google.api_core import gapic_v1 +from google.api_core import retry as retries +from google.auth import credentials as ga_credentials # type: ignore +from google.oauth2 import service_account # type: ignore + +try: + OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] +except AttributeError: # pragma: NO COVER + OptionalRetry = Union[retries.Retry, object] # type: ignore + +from google.api_core import operation # type: ignore +from google.api_core import operation_async # type: ignore +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.services.hub_service import pagers +from google.cloud.networkconnectivity_v1.types import common +from google.cloud.networkconnectivity_v1.types import hub +from google.cloud.networkconnectivity_v1.types import hub as gcn_hub +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from google.protobuf import empty_pb2 # type: ignore +from google.protobuf import field_mask_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore +from .transports.base import HubServiceTransport, DEFAULT_CLIENT_INFO +from .transports.grpc_asyncio import HubServiceGrpcAsyncIOTransport +from .client import HubServiceClient + + +class HubServiceAsyncClient: + """Network Connectivity Center is a hub-and-spoke abstraction + for network connectivity management in Google Cloud. It reduces + operational complexity through a simple, centralized + connectivity management model. + """ + + _client: HubServiceClient + + DEFAULT_ENDPOINT = HubServiceClient.DEFAULT_ENDPOINT + DEFAULT_MTLS_ENDPOINT = HubServiceClient.DEFAULT_MTLS_ENDPOINT + + group_path = staticmethod(HubServiceClient.group_path) + parse_group_path = staticmethod(HubServiceClient.parse_group_path) + hub_path = staticmethod(HubServiceClient.hub_path) + parse_hub_path = staticmethod(HubServiceClient.parse_hub_path) + hub_route_path = staticmethod(HubServiceClient.hub_route_path) + parse_hub_route_path = staticmethod(HubServiceClient.parse_hub_route_path) + instance_path = staticmethod(HubServiceClient.instance_path) + parse_instance_path = staticmethod(HubServiceClient.parse_instance_path) + interconnect_attachment_path = staticmethod(HubServiceClient.interconnect_attachment_path) + parse_interconnect_attachment_path = staticmethod(HubServiceClient.parse_interconnect_attachment_path) + network_path = staticmethod(HubServiceClient.network_path) + parse_network_path = staticmethod(HubServiceClient.parse_network_path) + route_table_path = staticmethod(HubServiceClient.route_table_path) + parse_route_table_path = staticmethod(HubServiceClient.parse_route_table_path) + spoke_path = staticmethod(HubServiceClient.spoke_path) + parse_spoke_path = staticmethod(HubServiceClient.parse_spoke_path) + vpn_tunnel_path = staticmethod(HubServiceClient.vpn_tunnel_path) + parse_vpn_tunnel_path = staticmethod(HubServiceClient.parse_vpn_tunnel_path) + common_billing_account_path = staticmethod(HubServiceClient.common_billing_account_path) + parse_common_billing_account_path = staticmethod(HubServiceClient.parse_common_billing_account_path) + common_folder_path = staticmethod(HubServiceClient.common_folder_path) + parse_common_folder_path = staticmethod(HubServiceClient.parse_common_folder_path) + common_organization_path = staticmethod(HubServiceClient.common_organization_path) + parse_common_organization_path = staticmethod(HubServiceClient.parse_common_organization_path) + common_project_path = staticmethod(HubServiceClient.common_project_path) + parse_common_project_path = staticmethod(HubServiceClient.parse_common_project_path) + common_location_path = staticmethod(HubServiceClient.common_location_path) + parse_common_location_path = staticmethod(HubServiceClient.parse_common_location_path) + + @classmethod + def from_service_account_info(cls, info: dict, *args, **kwargs): + """Creates an instance of this client using the provided credentials + info. + + Args: + info (dict): The service account private key info. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HubServiceAsyncClient: The constructed client. + """ + return HubServiceClient.from_service_account_info.__func__(HubServiceAsyncClient, info, *args, **kwargs) # type: ignore + + @classmethod + def from_service_account_file(cls, filename: str, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HubServiceAsyncClient: The constructed client. + """ + return HubServiceClient.from_service_account_file.__func__(HubServiceAsyncClient, filename, *args, **kwargs) # type: ignore + + from_service_account_json = from_service_account_file + + @classmethod + def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None): + """Return the API endpoint and client cert source for mutual TLS. + + The client cert source is determined in the following order: + (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the + client cert source is None. + (2) if `client_options.client_cert_source` is provided, use the provided one; if the + default client cert source exists, use the default one; otherwise the client cert + source is None. + + The API endpoint is determined in the following order: + (1) if `client_options.api_endpoint` if provided, use the provided one. + (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the + default mTLS endpoint; if the environment variable is "never", use the default API + endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise + use the default API endpoint. + + More details can be found at https://google.aip.dev/auth/4114. + + Args: + client_options (google.api_core.client_options.ClientOptions): Custom options for the + client. Only the `api_endpoint` and `client_cert_source` properties may be used + in this method. + + Returns: + Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the + client cert source to use. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If any errors happen. + """ + return HubServiceClient.get_mtls_endpoint_and_cert_source(client_options) # type: ignore + + @property + def transport(self) -> HubServiceTransport: + """Returns the transport used by the client instance. + + Returns: + HubServiceTransport: The transport used by the client instance. + """ + return self._client.transport + + get_transport_class = functools.partial(type(HubServiceClient).get_transport_class, type(HubServiceClient)) + + def __init__(self, *, + credentials: Optional[ga_credentials.Credentials] = None, + transport: Union[str, HubServiceTransport] = "grpc_asyncio", + client_options: Optional[ClientOptions] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + ) -> None: + """Instantiates the hub service client. + + Args: + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + transport (Union[str, ~.HubServiceTransport]): The + transport to use. If set to None, a transport is chosen + automatically. + client_options (ClientOptions): Custom options for the client. It + won't take effect if a ``transport`` instance is provided. + (1) The ``api_endpoint`` property can be used to override the + default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT + environment variable can also be used to override the endpoint: + "always" (always use the default mTLS endpoint), "never" (always + use the default regular endpoint) and "auto" (auto switch to the + default mTLS endpoint if client certificate is present, this is + the default value). However, the ``api_endpoint`` property takes + precedence if provided. + (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable + is "true", then the ``client_cert_source`` property can be used + to provide client certificate for mutual TLS transport. If + not provided, the default SSL client certificate will be used if + present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not + set, no client certificate will be used. + + Raises: + google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport + creation failed for any reason. + """ + self._client = HubServiceClient( + credentials=credentials, + transport=transport, + client_options=client_options, + client_info=client_info, + + ) + + async def list_hubs(self, + request: Optional[Union[hub.ListHubsRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListHubsAsyncPager: + r"""Lists the Network Connectivity Center hubs associated + with a given 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 networkconnectivity_v1 + + async def sample_list_hubs(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_hubs(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListHubsRequest, dict]]): + The request object. Request for + [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] + method. + parent (:class:`str`): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsAsyncPager: + Response for + [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] + method. + + 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([parent]) + 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.") + + request = hub.ListHubsRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_hubs, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListHubsAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def get_hub(self, + request: Optional[Union[hub.GetHubRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Hub: + r"""Gets details about a Network Connectivity Center hub. + + .. 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 networkconnectivity_v1 + + async def sample_get_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetHubRequest( + name="name_value", + ) + + # Make the request + response = await client.get_hub(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetHubRequest, dict]]): + The request object. Request for + [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub] + method. + name (:class:`str`): + Required. The name of the hub + resource to get. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Hub: + A Network Connectivity Center hub is + a global management resource to which + you attach spokes. A single hub can + contain spokes from multiple regions. + However, if any of a hub's spokes use + the site-to-site data transfer feature, + the resources associated with those + spokes must all be in the same VPC + network. Spokes that do not use + site-to-site data transfer can be + associated with any VPC network in your + project. + + """ + # 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([name]) + 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.") + + request = hub.GetHubRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_hub, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def create_hub(self, + request: Optional[Union[gcn_hub.CreateHubRequest, dict]] = None, + *, + parent: Optional[str] = None, + hub: Optional[gcn_hub.Hub] = None, + hub_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Creates a new Network Connectivity Center hub in 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 networkconnectivity_v1 + + async def sample_create_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.CreateHubRequest( + parent="parent_value", + hub_id="hub_id_value", + ) + + # Make the request + operation = client.create_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.CreateHubRequest, dict]]): + The request object. Request for + [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub] + method. + parent (:class:`str`): + Required. The parent resource. + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + hub (:class:`google.cloud.networkconnectivity_v1.types.Hub`): + Required. The initial values for a + new hub. + + This corresponds to the ``hub`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + hub_id (:class:`str`): + Required. A unique identifier for the + hub. + + This corresponds to the ``hub_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which + you attach spokes. A single hub can contain spokes + from multiple regions. However, if any of a hub's + spokes use the site-to-site data transfer feature, + the resources associated with those spokes must all + be in the same VPC network. Spokes that do not use + site-to-site data transfer can be associated with any + VPC network in your project. + + """ + # 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([parent, hub, hub_id]) + 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.") + + request = gcn_hub.CreateHubRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if hub is not None: + request.hub = hub + if hub_id is not None: + request.hub_id = hub_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.create_hub, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + gcn_hub.Hub, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def update_hub(self, + request: Optional[Union[gcn_hub.UpdateHubRequest, dict]] = None, + *, + hub: Optional[gcn_hub.Hub] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Updates the description and/or labels of a Network + Connectivity Center hub. + + .. 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 networkconnectivity_v1 + + async def sample_update_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.UpdateHubRequest( + ) + + # Make the request + operation = client.update_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.UpdateHubRequest, dict]]): + The request object. Request for + [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub] + method. + hub (:class:`google.cloud.networkconnectivity_v1.types.Hub`): + Required. The state that the hub + should be in after the update. + + This corresponds to the ``hub`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`): + Optional. In the case of an update to an existing hub, + field mask is used to specify the fields to be + overwritten. The fields specified in the update_mask are + relative to the resource, not the full request. A field + is overwritten if it is in the mask. If the user does + not provide a mask, then all fields are overwritten. + + This corresponds to the ``update_mask`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which + you attach spokes. A single hub can contain spokes + from multiple regions. However, if any of a hub's + spokes use the site-to-site data transfer feature, + the resources associated with those spokes must all + be in the same VPC network. Spokes that do not use + site-to-site data transfer can be associated with any + VPC network in your project. + + """ + # 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([hub, update_mask]) + 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.") + + request = gcn_hub.UpdateHubRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if hub is not None: + request.hub = hub + if update_mask is not None: + request.update_mask = update_mask + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.update_hub, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("hub.name", request.hub.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + gcn_hub.Hub, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def delete_hub(self, + request: Optional[Union[hub.DeleteHubRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Deletes a Network Connectivity Center hub. + + .. 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 networkconnectivity_v1 + + async def sample_delete_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteHubRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.DeleteHubRequest, dict]]): + The request object. The request for + [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub]. + name (:class:`str`): + Required. The name of the hub to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.") + + request = hub.DeleteHubRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.delete_hub, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def list_hub_spokes(self, + request: Optional[Union[hub.ListHubSpokesRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListHubSpokesAsyncPager: + r"""Lists the Network Connectivity Center spokes + associated with a specified hub and location. The list + includes both spokes that are attached to the hub and + spokes that have been proposed but not yet accepted. + + .. 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 networkconnectivity_v1 + + async def sample_list_hub_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubSpokesRequest( + name="name_value", + ) + + # Make the request + page_result = client.list_hub_spokes(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest, dict]]): + The request object. The request for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + name (:class:`str`): + Required. The name of the hub. + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesAsyncPager: + The response for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + + 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([name]) + 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.") + + request = hub.ListHubSpokesRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_hub_spokes, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListHubSpokesAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def list_spokes(self, + request: Optional[Union[hub.ListSpokesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListSpokesAsyncPager: + r"""Lists the Network Connectivity Center spokes in a + specified project and location. + + .. 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 networkconnectivity_v1 + + async def sample_list_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListSpokesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_spokes(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListSpokesRequest, dict]]): + The request object. The request for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. + parent (:class:`str`): + Required. The parent resource. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesAsyncPager: + The response for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. + + 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([parent]) + 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.") + + request = hub.ListSpokesRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_spokes, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListSpokesAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def get_spoke(self, + request: Optional[Union[hub.GetSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Spoke: + r"""Gets details about a Network Connectivity Center + spoke. + + .. 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 networkconnectivity_v1 + + async def sample_get_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetSpokeRequest( + name="name_value", + ) + + # Make the request + response = await client.get_spoke(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetSpokeRequest, dict]]): + The request object. The request for + [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke]. + name (:class:`str`): + Required. The name of the spoke + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Spoke: + A Network Connectivity Center spoke represents one or more network + connectivity resources. + + When you create a spoke, you associate it with a hub. + You must also identify a value for exactly one of the + following fields: + + - linked_vpn_tunnels + - linked_interconnect_attachments + - linked_router_appliance_instances + - linked_vpc_network + + """ + # 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([name]) + 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.") + + request = hub.GetSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_spoke, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def create_spoke(self, + request: Optional[Union[hub.CreateSpokeRequest, dict]] = None, + *, + parent: Optional[str] = None, + spoke: Optional[hub.Spoke] = None, + spoke_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Creates a Network Connectivity Center spoke. + + .. 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 networkconnectivity_v1 + + async def sample_create_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.CreateSpokeRequest( + parent="parent_value", + spoke_id="spoke_id_value", + ) + + # Make the request + operation = client.create_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.CreateSpokeRequest, dict]]): + The request object. The request for + [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke]. + parent (:class:`str`): + Required. The parent resource. + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke (:class:`google.cloud.networkconnectivity_v1.types.Spoke`): + Required. The initial values for a + new spoke. + + This corresponds to the ``spoke`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_id (:class:`str`): + Required. Unique id for the spoke to + create. + + This corresponds to the ``spoke_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network + connectivity resources. + + When you create a spoke, you associate it with a hub. + You must also identify a value for exactly one of the + following fields: + + - linked_vpn_tunnels + - linked_interconnect_attachments + - linked_router_appliance_instances + - linked_vpc_network + + """ + # 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([parent, spoke, spoke_id]) + 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.") + + request = hub.CreateSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if spoke is not None: + request.spoke = spoke + if spoke_id is not None: + request.spoke_id = spoke_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.create_spoke, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + hub.Spoke, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def update_spoke(self, + request: Optional[Union[hub.UpdateSpokeRequest, dict]] = None, + *, + spoke: Optional[hub.Spoke] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Updates the parameters of a Network Connectivity + Center spoke. + + .. 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 networkconnectivity_v1 + + async def sample_update_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.UpdateSpokeRequest( + ) + + # Make the request + operation = client.update_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest, dict]]): + The request object. Request for + [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke] + method. + spoke (:class:`google.cloud.networkconnectivity_v1.types.Spoke`): + Required. The state that the spoke + should be in after the update. + + This corresponds to the ``spoke`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`): + Optional. In the case of an update to an existing spoke, + field mask is used to specify the fields to be + overwritten. The fields specified in the update_mask are + relative to the resource, not the full request. A field + is overwritten if it is in the mask. If the user does + not provide a mask, then all fields are overwritten. + + This corresponds to the ``update_mask`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network + connectivity resources. + + When you create a spoke, you associate it with a hub. + You must also identify a value for exactly one of the + following fields: + + - linked_vpn_tunnels + - linked_interconnect_attachments + - linked_router_appliance_instances + - linked_vpc_network + + """ + # 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([spoke, update_mask]) + 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.") + + request = hub.UpdateSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if spoke is not None: + request.spoke = spoke + if update_mask is not None: + request.update_mask = update_mask + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.update_spoke, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("spoke.name", request.spoke.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + hub.Spoke, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def reject_hub_spoke(self, + request: Optional[Union[hub.RejectHubSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + spoke_uri: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Rejects a Network Connectivity Center spoke from being attached + to a hub. If the spoke was previously in the ``ACTIVE`` state, + it transitions to the ``INACTIVE`` state and is no longer able + to connect to other spokes that are attached to the hub. + + .. 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 networkconnectivity_v1 + + async def sample_reject_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.RejectHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.reject_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest, dict]]): + The request object. The request for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. + name (:class:`str`): + Required. The name of the hub from + which to reject the spoke. + + This corresponds to the ``name`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_uri (:class:`str`): + Required. The URI of the spoke to + reject from the hub. + + This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.RejectHubSpokeResponse` The response for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. + + """ + # 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([name, spoke_uri]) + 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.") + + request = hub.RejectHubSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + if spoke_uri is not None: + request.spoke_uri = spoke_uri + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.reject_hub_spoke, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + hub.RejectHubSpokeResponse, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def accept_hub_spoke(self, + request: Optional[Union[hub.AcceptHubSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + spoke_uri: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Accepts a proposal to attach a Network Connectivity + Center spoke to a hub. + + .. 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 networkconnectivity_v1 + + async def sample_accept_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.AcceptHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.accept_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest, dict]]): + The request object. The request for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + name (:class:`str`): + Required. The name of the hub into + which to accept the spoke. + + This corresponds to the ``name`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_uri (:class:`str`): + Required. The URI of the spoke to + accept into the hub. + + This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.AcceptHubSpokeResponse` The response for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + + """ + # 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([name, spoke_uri]) + 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.") + + request = hub.AcceptHubSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + if spoke_uri is not None: + request.spoke_uri = spoke_uri + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.accept_hub_spoke, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + hub.AcceptHubSpokeResponse, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def delete_spoke(self, + request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Deletes a Network Connectivity Center spoke. + + .. 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 networkconnectivity_v1 + + async def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest, dict]]): + The request object. The request for + [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. + name (:class:`str`): + Required. The name of the spoke to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.") + + request = hub.DeleteSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.delete_spoke, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def get_route_table(self, + request: Optional[Union[hub.GetRouteTableRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.RouteTable: + r"""Gets details about a Network Connectivity Center + route table. + + .. 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 networkconnectivity_v1 + + async def sample_get_route_table(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteTableRequest( + name="name_value", + ) + + # Make the request + response = await client.get_route_table(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetRouteTableRequest, dict]]): + The request object. The request for + [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. + name (:class:`str`): + Required. The name of the route table + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.RouteTable: + + """ + # 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([name]) + 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.") + + request = hub.GetRouteTableRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_route_table, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def get_route(self, + request: Optional[Union[hub.GetRouteRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Route: + r"""Gets details about the specified route. + + .. 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 networkconnectivity_v1 + + async def sample_get_route(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteRequest( + name="name_value", + ) + + # Make the request + response = await client.get_route(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetRouteRequest, dict]]): + The request object. The request for + [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. + name (:class:`str`): + Required. The name of the route + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Route: + A route defines a path from VM + instances within a spoke to a specific + destination resource. Only VPC spokes + have routes. + + """ + # 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([name]) + 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.") + + request = hub.GetRouteRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_route, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def list_routes(self, + request: Optional[Union[hub.ListRoutesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListRoutesAsyncPager: + r"""Lists routes in a given 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 networkconnectivity_v1 + + async def sample_list_routes(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_routes(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListRoutesRequest, dict]]): + The request object. Request for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + parent (:class:`str`): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesAsyncPager: + Response for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + + 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([parent]) + 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.") + + request = hub.ListRoutesRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_routes, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListRoutesAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def list_route_tables(self, + request: Optional[Union[hub.ListRouteTablesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListRouteTablesAsyncPager: + r"""Lists route tables in a given 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 networkconnectivity_v1 + + async def sample_list_route_tables(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRouteTablesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_route_tables(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest, dict]]): + The request object. Request for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + parent (:class:`str`): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesAsyncPager: + Response for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + + 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([parent]) + 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.") + + request = hub.ListRouteTablesRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_route_tables, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListRouteTablesAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def get_group(self, + request: Optional[Union[hub.GetGroupRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Group: + r"""Gets details about a Network Connectivity Center + group. + + .. 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 networkconnectivity_v1 + + async def sample_get_group(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetGroupRequest( + name="name_value", + ) + + # Make the request + response = await client.get_group(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetGroupRequest, dict]]): + The request object. The request for + [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. + name (:class:`str`): + Required. The name of the route table + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Group: + A group represents a subset of spokes + attached to a hub. + + """ + # 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([name]) + 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.") + + request = hub.GetGroupRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_group, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def list_groups(self, + request: Optional[Union[hub.ListGroupsRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListGroupsAsyncPager: + r"""Lists groups in a given hub. + + .. 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 networkconnectivity_v1 + + async def sample_list_groups(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListGroupsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_groups(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListGroupsRequest, dict]]): + The request object. Request for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + parent (:class:`str`): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsAsyncPager: + Response for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + + 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([parent]) + 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.") + + request = hub.ListGroupsRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_groups, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListGroupsAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def list_operations( + self, + request: Optional[operations_pb2.ListOperationsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operations_pb2.ListOperationsResponse: + r"""Lists operations that match the specified filter in the request. + + Args: + request (:class:`~.operations_pb2.ListOperationsRequest`): + The request object. Request message for + `ListOperations` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.operations_pb2.ListOperationsResponse: + Response message for ``ListOperations`` method. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.ListOperationsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.list_operations, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def get_operation( + self, + request: Optional[operations_pb2.GetOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operations_pb2.Operation: + r"""Gets the latest state of a long-running operation. + + Args: + request (:class:`~.operations_pb2.GetOperationRequest`): + The request object. Request message for + `GetOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.operations_pb2.Operation: + An ``Operation`` object. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.GetOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.get_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def delete_operation( + self, + request: Optional[operations_pb2.DeleteOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> None: + r"""Deletes a long-running operation. + + This method indicates that the client is no longer interested + in the operation result. It does not cancel the operation. + If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + + Args: + request (:class:`~.operations_pb2.DeleteOperationRequest`): + The request object. Request message for + `DeleteOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + None + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.DeleteOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.delete_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + await rpc(request, retry=retry, timeout=timeout, metadata=metadata,) + + async def cancel_operation( + self, + request: Optional[operations_pb2.CancelOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> None: + r"""Starts asynchronous cancellation on a long-running operation. + + The server makes a best effort to cancel the operation, but success + is not guaranteed. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + + Args: + request (:class:`~.operations_pb2.CancelOperationRequest`): + The request object. Request message for + `CancelOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + None + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.CancelOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.cancel_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + await rpc(request, retry=retry, timeout=timeout, metadata=metadata,) + + async def set_iam_policy( + self, + request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_pb2.Policy: + r"""Sets the IAM access control policy on the specified function. + + Replaces any existing policy. + + Args: + request (:class:`~.iam_policy_pb2.SetIamPolicyRequest`): + The request object. Request message for `SetIamPolicy` + method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.policy_pb2.Policy: + Defines an Identity and Access Management (IAM) policy. + It is used to specify access control policies for Cloud + Platform resources. + A ``Policy`` is a collection of ``bindings``. A + ``binding`` binds one or more ``members`` to a single + ``role``. Members can be user accounts, service + accounts, Google groups, and domains (such as G Suite). + A ``role`` is a named list of permissions (defined by + IAM or configured by users). A ``binding`` can + optionally specify a ``condition``, which is a logic + expression that further constrains the role binding + based on attributes about the request and/or target + resource. + + **JSON Example** + + :: + + { + "bindings": [ + { + "role": "roles/resourcemanager.organizationAdmin", + "members": [ + "user:mike@example.com", + "group:admins@example.com", + "domain:google.com", + "serviceAccount:my-project-id@appspot.gserviceaccount.com" + ] + }, + { + "role": "roles/resourcemanager.organizationViewer", + "members": ["user:eve@example.com"], + "condition": { + "title": "expirable access", + "description": "Does not grant access after Sep 2020", + "expression": "request.time < + timestamp('2020-10-01T00:00:00.000Z')", + } + } + ] + } + + **YAML Example** + + :: + + bindings: + - members: + - user:mike@example.com + - group:admins@example.com + - domain:google.com + - serviceAccount:my-project-id@appspot.gserviceaccount.com + role: roles/resourcemanager.organizationAdmin + - members: + - user:eve@example.com + role: roles/resourcemanager.organizationViewer + condition: + title: expirable access + description: Does not grant access after Sep 2020 + expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + + For a description of IAM and its features, see the `IAM + developer's + guide `__. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.SetIamPolicyRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.set_iam_policy, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def get_iam_policy( + self, + request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_pb2.Policy: + r"""Gets the IAM access control policy for a function. + + Returns an empty policy if the function exists and does not have a + policy set. + + Args: + request (:class:`~.iam_policy_pb2.GetIamPolicyRequest`): + The request object. Request message for `GetIamPolicy` + method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.policy_pb2.Policy: + Defines an Identity and Access Management (IAM) policy. + It is used to specify access control policies for Cloud + Platform resources. + A ``Policy`` is a collection of ``bindings``. A + ``binding`` binds one or more ``members`` to a single + ``role``. Members can be user accounts, service + accounts, Google groups, and domains (such as G Suite). + A ``role`` is a named list of permissions (defined by + IAM or configured by users). A ``binding`` can + optionally specify a ``condition``, which is a logic + expression that further constrains the role binding + based on attributes about the request and/or target + resource. + + **JSON Example** + + :: + + { + "bindings": [ + { + "role": "roles/resourcemanager.organizationAdmin", + "members": [ + "user:mike@example.com", + "group:admins@example.com", + "domain:google.com", + "serviceAccount:my-project-id@appspot.gserviceaccount.com" + ] + }, + { + "role": "roles/resourcemanager.organizationViewer", + "members": ["user:eve@example.com"], + "condition": { + "title": "expirable access", + "description": "Does not grant access after Sep 2020", + "expression": "request.time < + timestamp('2020-10-01T00:00:00.000Z')", + } + } + ] + } + + **YAML Example** + + :: + + bindings: + - members: + - user:mike@example.com + - group:admins@example.com + - domain:google.com + - serviceAccount:my-project-id@appspot.gserviceaccount.com + role: roles/resourcemanager.organizationAdmin + - members: + - user:eve@example.com + role: roles/resourcemanager.organizationViewer + condition: + title: expirable access + description: Does not grant access after Sep 2020 + expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + + For a description of IAM and its features, see the `IAM + developer's + guide `__. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.GetIamPolicyRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.get_iam_policy, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def test_iam_permissions( + self, + request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> iam_policy_pb2.TestIamPermissionsResponse: + r"""Tests the specified IAM permissions against the IAM access control + policy for a function. + + If the function does not exist, this will return an empty set + of permissions, not a NOT_FOUND error. + + Args: + request (:class:`~.iam_policy_pb2.TestIamPermissionsRequest`): + The request object. Request message for + `TestIamPermissions` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.iam_policy_pb2.TestIamPermissionsResponse: + Response message for ``TestIamPermissions`` method. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.TestIamPermissionsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.test_iam_permissions, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def get_location( + self, + request: Optional[locations_pb2.GetLocationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> locations_pb2.Location: + r"""Gets information about a location. + + Args: + request (:class:`~.location_pb2.GetLocationRequest`): + The request object. Request message for + `GetLocation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.location_pb2.Location: + Location object. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = locations_pb2.GetLocationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.get_location, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def list_locations( + self, + request: Optional[locations_pb2.ListLocationsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> locations_pb2.ListLocationsResponse: + r"""Lists information about the supported locations for this service. + + Args: + request (:class:`~.location_pb2.ListLocationsRequest`): + The request object. Request message for + `ListLocations` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.location_pb2.ListLocationsResponse: + Response message for ``ListLocations`` method. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = locations_pb2.ListLocationsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.list_locations, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def __aenter__(self) -> "HubServiceAsyncClient": + return self + + async def __aexit__(self, exc_type, exc, tb): + await self.transport.close() + +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) + + +__all__ = ( + "HubServiceAsyncClient", +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/client.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/client.py new file mode 100644 index 000000000000..dc55dbc05e69 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/client.py @@ -0,0 +1,3369 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from collections import OrderedDict +import os +import re +from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast + +from google.cloud.networkconnectivity_v1 import gapic_version as package_version + +from google.api_core import client_options as client_options_lib +from google.api_core import exceptions as core_exceptions +from google.api_core import gapic_v1 +from google.api_core import retry as retries +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport import mtls # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore +from google.auth.exceptions import MutualTLSChannelError # type: ignore +from google.oauth2 import service_account # type: ignore + +try: + OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] +except AttributeError: # pragma: NO COVER + OptionalRetry = Union[retries.Retry, object] # type: ignore + +from google.api_core import operation # type: ignore +from google.api_core import operation_async # type: ignore +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.services.hub_service import pagers +from google.cloud.networkconnectivity_v1.types import common +from google.cloud.networkconnectivity_v1.types import hub +from google.cloud.networkconnectivity_v1.types import hub as gcn_hub +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from google.protobuf import empty_pb2 # type: ignore +from google.protobuf import field_mask_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore +from .transports.base import HubServiceTransport, DEFAULT_CLIENT_INFO +from .transports.grpc import HubServiceGrpcTransport +from .transports.grpc_asyncio import HubServiceGrpcAsyncIOTransport + + +class HubServiceClientMeta(type): + """Metaclass for the HubService client. + + This provides class-level methods for building and retrieving + support objects (e.g. transport) without polluting the client instance + objects. + """ + _transport_registry = OrderedDict() # type: Dict[str, Type[HubServiceTransport]] + _transport_registry["grpc"] = HubServiceGrpcTransport + _transport_registry["grpc_asyncio"] = HubServiceGrpcAsyncIOTransport + + def get_transport_class(cls, + label: Optional[str] = None, + ) -> Type[HubServiceTransport]: + """Returns an appropriate transport class. + + Args: + label: The name of the desired transport. If none is + provided, then the first transport in the registry is used. + + Returns: + The transport class to use. + """ + # If a specific transport is requested, return that one. + if label: + return cls._transport_registry[label] + + # No transport is requested; return the default (that is, the first one + # in the dictionary). + return next(iter(cls._transport_registry.values())) + + +class HubServiceClient(metaclass=HubServiceClientMeta): + """Network Connectivity Center is a hub-and-spoke abstraction + for network connectivity management in Google Cloud. It reduces + operational complexity through a simple, centralized + connectivity management model. + """ + + @staticmethod + def _get_default_mtls_endpoint(api_endpoint): + """Converts api endpoint to mTLS endpoint. + + Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to + "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively. + Args: + api_endpoint (Optional[str]): the api endpoint to convert. + Returns: + str: converted mTLS api endpoint. + """ + if not api_endpoint: + return api_endpoint + + mtls_endpoint_re = re.compile( + r"(?P[^.]+)(?P\.mtls)?(?P\.sandbox)?(?P\.googleapis\.com)?" + ) + + m = mtls_endpoint_re.match(api_endpoint) + name, mtls, sandbox, googledomain = m.groups() + if mtls or not googledomain: + return api_endpoint + + if sandbox: + return api_endpoint.replace( + "sandbox.googleapis.com", "mtls.sandbox.googleapis.com" + ) + + return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com") + + DEFAULT_ENDPOINT = "networkconnectivity.googleapis.com" + DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__( # type: ignore + DEFAULT_ENDPOINT + ) + + @classmethod + def from_service_account_info(cls, info: dict, *args, **kwargs): + """Creates an instance of this client using the provided credentials + info. + + Args: + info (dict): The service account private key info. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HubServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_info(info) + kwargs["credentials"] = credentials + return cls(*args, **kwargs) + + @classmethod + def from_service_account_file(cls, filename: str, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HubServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs["credentials"] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @property + def transport(self) -> HubServiceTransport: + """Returns the transport used by the client instance. + + Returns: + HubServiceTransport: The transport used by the client + instance. + """ + return self._transport + + @staticmethod + def group_path(project: str,hub: str,group: str,) -> str: + """Returns a fully-qualified group string.""" + return "projects/{project}/locations/global/hubs/{hub}/groups/{group}".format(project=project, hub=hub, group=group, ) + + @staticmethod + def parse_group_path(path: str) -> Dict[str,str]: + """Parses a group path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)/groups/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def hub_path(project: str,hub: str,) -> str: + """Returns a fully-qualified hub string.""" + return "projects/{project}/locations/global/hubs/{hub}".format(project=project, hub=hub, ) + + @staticmethod + def parse_hub_path(path: str) -> Dict[str,str]: + """Parses a hub path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def hub_route_path(project: str,hub: str,route_table: str,route: str,) -> str: + """Returns a fully-qualified hub_route string.""" + return "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}/routes/{route}".format(project=project, hub=hub, route_table=route_table, route=route, ) + + @staticmethod + def parse_hub_route_path(path: str) -> Dict[str,str]: + """Parses a hub_route path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)/routeTables/(?P.+?)/routes/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def instance_path(project: str,zone: str,instance: str,) -> str: + """Returns a fully-qualified instance string.""" + return "projects/{project}/zones/{zone}/instances/{instance}".format(project=project, zone=zone, instance=instance, ) + + @staticmethod + def parse_instance_path(path: str) -> Dict[str,str]: + """Parses a instance path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/zones/(?P.+?)/instances/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def interconnect_attachment_path(project: str,region: str,resource_id: str,) -> str: + """Returns a fully-qualified interconnect_attachment string.""" + return "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) + + @staticmethod + def parse_interconnect_attachment_path(path: str) -> Dict[str,str]: + """Parses a interconnect_attachment path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/regions/(?P.+?)/interconnectAttachments/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def network_path(project: str,resource_id: str,) -> str: + """Returns a fully-qualified network string.""" + return "projects/{project}/global/networks/{resource_id}".format(project=project, resource_id=resource_id, ) + + @staticmethod + def parse_network_path(path: str) -> Dict[str,str]: + """Parses a network path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/global/networks/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def route_table_path(project: str,hub: str,route_table: str,) -> str: + """Returns a fully-qualified route_table string.""" + return "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}".format(project=project, hub=hub, route_table=route_table, ) + + @staticmethod + def parse_route_table_path(path: str) -> Dict[str,str]: + """Parses a route_table path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)/routeTables/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def spoke_path(project: str,location: str,spoke: str,) -> str: + """Returns a fully-qualified spoke string.""" + return "projects/{project}/locations/{location}/spokes/{spoke}".format(project=project, location=location, spoke=spoke, ) + + @staticmethod + def parse_spoke_path(path: str) -> Dict[str,str]: + """Parses a spoke path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)/spokes/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def vpn_tunnel_path(project: str,region: str,resource_id: str,) -> str: + """Returns a fully-qualified vpn_tunnel string.""" + return "projects/{project}/regions/{region}/vpnTunnels/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) + + @staticmethod + def parse_vpn_tunnel_path(path: str) -> Dict[str,str]: + """Parses a vpn_tunnel path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/regions/(?P.+?)/vpnTunnels/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_billing_account_path(billing_account: str, ) -> str: + """Returns a fully-qualified billing_account string.""" + return "billingAccounts/{billing_account}".format(billing_account=billing_account, ) + + @staticmethod + def parse_common_billing_account_path(path: str) -> Dict[str,str]: + """Parse a billing_account path into its component segments.""" + m = re.match(r"^billingAccounts/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_folder_path(folder: str, ) -> str: + """Returns a fully-qualified folder string.""" + return "folders/{folder}".format(folder=folder, ) + + @staticmethod + def parse_common_folder_path(path: str) -> Dict[str,str]: + """Parse a folder path into its component segments.""" + m = re.match(r"^folders/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_organization_path(organization: str, ) -> str: + """Returns a fully-qualified organization string.""" + return "organizations/{organization}".format(organization=organization, ) + + @staticmethod + def parse_common_organization_path(path: str) -> Dict[str,str]: + """Parse a organization path into its component segments.""" + m = re.match(r"^organizations/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_project_path(project: str, ) -> str: + """Returns a fully-qualified project string.""" + return "projects/{project}".format(project=project, ) + + @staticmethod + def parse_common_project_path(path: str) -> Dict[str,str]: + """Parse a project path into its component segments.""" + m = re.match(r"^projects/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_location_path(project: str, location: str, ) -> str: + """Returns a fully-qualified location string.""" + return "projects/{project}/locations/{location}".format(project=project, location=location, ) + + @staticmethod + def parse_common_location_path(path: str) -> Dict[str,str]: + """Parse a location path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)$", path) + return m.groupdict() if m else {} + + @classmethod + def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None): + """Return the API endpoint and client cert source for mutual TLS. + + The client cert source is determined in the following order: + (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the + client cert source is None. + (2) if `client_options.client_cert_source` is provided, use the provided one; if the + default client cert source exists, use the default one; otherwise the client cert + source is None. + + The API endpoint is determined in the following order: + (1) if `client_options.api_endpoint` if provided, use the provided one. + (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the + default mTLS endpoint; if the environment variable is "never", use the default API + endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise + use the default API endpoint. + + More details can be found at https://google.aip.dev/auth/4114. + + Args: + client_options (google.api_core.client_options.ClientOptions): Custom options for the + client. Only the `api_endpoint` and `client_cert_source` properties may be used + in this method. + + Returns: + Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the + client cert source to use. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If any errors happen. + """ + if client_options is None: + client_options = client_options_lib.ClientOptions() + use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false") + use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto") + if use_client_cert not in ("true", "false"): + raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`") + if use_mtls_endpoint not in ("auto", "never", "always"): + raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`") + + # Figure out the client cert source to use. + client_cert_source = None + if use_client_cert == "true": + if client_options.client_cert_source: + client_cert_source = client_options.client_cert_source + elif mtls.has_default_client_cert_source(): + client_cert_source = mtls.default_client_cert_source() + + # Figure out which api endpoint to use. + if client_options.api_endpoint is not None: + api_endpoint = client_options.api_endpoint + elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source): + api_endpoint = cls.DEFAULT_MTLS_ENDPOINT + else: + api_endpoint = cls.DEFAULT_ENDPOINT + + return api_endpoint, client_cert_source + + def __init__(self, *, + credentials: Optional[ga_credentials.Credentials] = None, + transport: Optional[Union[str, HubServiceTransport]] = None, + client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + ) -> None: + """Instantiates the hub service client. + + Args: + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + transport (Union[str, HubServiceTransport]): The + transport to use. If set to None, a transport is chosen + automatically. + client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the + client. It won't take effect if a ``transport`` instance is provided. + (1) The ``api_endpoint`` property can be used to override the + default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT + environment variable can also be used to override the endpoint: + "always" (always use the default mTLS endpoint), "never" (always + use the default regular endpoint) and "auto" (auto switch to the + default mTLS endpoint if client certificate is present, this is + the default value). However, the ``api_endpoint`` property takes + precedence if provided. + (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable + is "true", then the ``client_cert_source`` property can be used + to provide client certificate for mutual TLS transport. If + not provided, the default SSL client certificate will be used if + present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not + set, no client certificate will be used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport + creation failed for any reason. + """ + if isinstance(client_options, dict): + client_options = client_options_lib.from_dict(client_options) + if client_options is None: + client_options = client_options_lib.ClientOptions() + client_options = cast(client_options_lib.ClientOptions, client_options) + + api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options) + + api_key_value = getattr(client_options, "api_key", None) + if api_key_value and credentials: + raise ValueError("client_options.api_key and credentials are mutually exclusive") + + # Save or instantiate the transport. + # Ordinarily, we provide the transport, but allowing a custom transport + # instance provides an extensibility point for unusual situations. + if isinstance(transport, HubServiceTransport): + # transport is a HubServiceTransport instance. + if credentials or client_options.credentials_file or api_key_value: + raise ValueError("When providing a transport instance, " + "provide its credentials directly.") + if client_options.scopes: + raise ValueError( + "When providing a transport instance, provide its scopes " + "directly." + ) + self._transport = transport + else: + import google.auth._default # type: ignore + + if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"): + credentials = google.auth._default.get_api_key_credentials(api_key_value) + + Transport = type(self).get_transport_class(transport) + self._transport = Transport( + credentials=credentials, + credentials_file=client_options.credentials_file, + host=api_endpoint, + scopes=client_options.scopes, + client_cert_source_for_mtls=client_cert_source_func, + quota_project_id=client_options.quota_project_id, + client_info=client_info, + always_use_jwt_access=True, + api_audience=client_options.api_audience, + ) + + def list_hubs(self, + request: Optional[Union[hub.ListHubsRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListHubsPager: + r"""Lists the Network Connectivity Center hubs associated + with a given 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 networkconnectivity_v1 + + def sample_list_hubs(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_hubs(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListHubsRequest, dict]): + The request object. Request for + [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] + method. + parent (str): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsPager: + Response for + [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] + method. + + 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([parent]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListHubsRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListHubsRequest): + request = hub.ListHubsRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_hubs] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # 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.ListHubsPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_hub(self, + request: Optional[Union[hub.GetHubRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Hub: + r"""Gets details about a Network Connectivity Center hub. + + .. 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 networkconnectivity_v1 + + def sample_get_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetHubRequest( + name="name_value", + ) + + # Make the request + response = client.get_hub(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.GetHubRequest, dict]): + The request object. Request for + [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub] + method. + name (str): + Required. The name of the hub + resource to get. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Hub: + A Network Connectivity Center hub is + a global management resource to which + you attach spokes. A single hub can + contain spokes from multiple regions. + However, if any of a hub's spokes use + the site-to-site data transfer feature, + the resources associated with those + spokes must all be in the same VPC + network. Spokes that do not use + site-to-site data transfer can be + associated with any VPC network in your + project. + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetHubRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetHubRequest): + request = hub.GetHubRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_hub] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def create_hub(self, + request: Optional[Union[gcn_hub.CreateHubRequest, dict]] = None, + *, + parent: Optional[str] = None, + hub: Optional[gcn_hub.Hub] = None, + hub_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Creates a new Network Connectivity Center hub in 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 networkconnectivity_v1 + + def sample_create_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.CreateHubRequest( + parent="parent_value", + hub_id="hub_id_value", + ) + + # Make the request + operation = client.create_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.CreateHubRequest, dict]): + The request object. Request for + [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub] + method. + parent (str): + Required. The parent resource. + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + hub (google.cloud.networkconnectivity_v1.types.Hub): + Required. The initial values for a + new hub. + + This corresponds to the ``hub`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + hub_id (str): + Required. A unique identifier for the + hub. + + This corresponds to the ``hub_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which + you attach spokes. A single hub can contain spokes + from multiple regions. However, if any of a hub's + spokes use the site-to-site data transfer feature, + the resources associated with those spokes must all + be in the same VPC network. Spokes that do not use + site-to-site data transfer can be associated with any + VPC network in your project. + + """ + # 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([parent, hub, hub_id]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a gcn_hub.CreateHubRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, gcn_hub.CreateHubRequest): + request = gcn_hub.CreateHubRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if hub is not None: + request.hub = hub + if hub_id is not None: + request.hub_id = hub_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.create_hub] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + gcn_hub.Hub, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def update_hub(self, + request: Optional[Union[gcn_hub.UpdateHubRequest, dict]] = None, + *, + hub: Optional[gcn_hub.Hub] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Updates the description and/or labels of a Network + Connectivity Center hub. + + .. 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 networkconnectivity_v1 + + def sample_update_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.UpdateHubRequest( + ) + + # Make the request + operation = client.update_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.UpdateHubRequest, dict]): + The request object. Request for + [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub] + method. + hub (google.cloud.networkconnectivity_v1.types.Hub): + Required. The state that the hub + should be in after the update. + + This corresponds to the ``hub`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + update_mask (google.protobuf.field_mask_pb2.FieldMask): + Optional. In the case of an update to an existing hub, + field mask is used to specify the fields to be + overwritten. The fields specified in the update_mask are + relative to the resource, not the full request. A field + is overwritten if it is in the mask. If the user does + not provide a mask, then all fields are overwritten. + + This corresponds to the ``update_mask`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which + you attach spokes. A single hub can contain spokes + from multiple regions. However, if any of a hub's + spokes use the site-to-site data transfer feature, + the resources associated with those spokes must all + be in the same VPC network. Spokes that do not use + site-to-site data transfer can be associated with any + VPC network in your project. + + """ + # 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([hub, update_mask]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a gcn_hub.UpdateHubRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, gcn_hub.UpdateHubRequest): + request = gcn_hub.UpdateHubRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if hub is not None: + request.hub = hub + if update_mask is not None: + request.update_mask = update_mask + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.update_hub] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("hub.name", request.hub.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + gcn_hub.Hub, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def delete_hub(self, + request: Optional[Union[hub.DeleteHubRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Deletes a Network Connectivity Center hub. + + .. 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 networkconnectivity_v1 + + def sample_delete_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteHubRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.DeleteHubRequest, dict]): + The request object. The request for + [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub]. + name (str): + Required. The name of the hub to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.DeleteHubRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.DeleteHubRequest): + request = hub.DeleteHubRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.delete_hub] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def list_hub_spokes(self, + request: Optional[Union[hub.ListHubSpokesRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListHubSpokesPager: + r"""Lists the Network Connectivity Center spokes + associated with a specified hub and location. The list + includes both spokes that are attached to the hub and + spokes that have been proposed but not yet accepted. + + .. 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 networkconnectivity_v1 + + def sample_list_hub_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubSpokesRequest( + name="name_value", + ) + + # Make the request + page_result = client.list_hub_spokes(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest, dict]): + The request object. The request for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + name (str): + Required. The name of the hub. + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesPager: + The response for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + + 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListHubSpokesRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListHubSpokesRequest): + request = hub.ListHubSpokesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_hub_spokes] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # 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.ListHubSpokesPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def list_spokes(self, + request: Optional[Union[hub.ListSpokesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListSpokesPager: + r"""Lists the Network Connectivity Center spokes in a + specified project and location. + + .. 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 networkconnectivity_v1 + + def sample_list_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListSpokesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_spokes(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListSpokesRequest, dict]): + The request object. The request for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. + parent (str): + Required. The parent resource. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesPager: + The response for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. + + 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([parent]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListSpokesRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListSpokesRequest): + request = hub.ListSpokesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_spokes] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # 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.ListSpokesPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_spoke(self, + request: Optional[Union[hub.GetSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Spoke: + r"""Gets details about a Network Connectivity Center + spoke. + + .. 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 networkconnectivity_v1 + + def sample_get_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetSpokeRequest( + name="name_value", + ) + + # Make the request + response = client.get_spoke(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.GetSpokeRequest, dict]): + The request object. The request for + [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke]. + name (str): + Required. The name of the spoke + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Spoke: + A Network Connectivity Center spoke represents one or more network + connectivity resources. + + When you create a spoke, you associate it with a hub. + You must also identify a value for exactly one of the + following fields: + + - linked_vpn_tunnels + - linked_interconnect_attachments + - linked_router_appliance_instances + - linked_vpc_network + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetSpokeRequest): + request = hub.GetSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def create_spoke(self, + request: Optional[Union[hub.CreateSpokeRequest, dict]] = None, + *, + parent: Optional[str] = None, + spoke: Optional[hub.Spoke] = None, + spoke_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Creates a Network Connectivity Center spoke. + + .. 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 networkconnectivity_v1 + + def sample_create_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.CreateSpokeRequest( + parent="parent_value", + spoke_id="spoke_id_value", + ) + + # Make the request + operation = client.create_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.CreateSpokeRequest, dict]): + The request object. The request for + [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke]. + parent (str): + Required. The parent resource. + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke (google.cloud.networkconnectivity_v1.types.Spoke): + Required. The initial values for a + new spoke. + + This corresponds to the ``spoke`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_id (str): + Required. Unique id for the spoke to + create. + + This corresponds to the ``spoke_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network + connectivity resources. + + When you create a spoke, you associate it with a hub. + You must also identify a value for exactly one of the + following fields: + + - linked_vpn_tunnels + - linked_interconnect_attachments + - linked_router_appliance_instances + - linked_vpc_network + + """ + # 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([parent, spoke, spoke_id]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.CreateSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.CreateSpokeRequest): + request = hub.CreateSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if spoke is not None: + request.spoke = spoke + if spoke_id is not None: + request.spoke_id = spoke_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.create_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + hub.Spoke, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def update_spoke(self, + request: Optional[Union[hub.UpdateSpokeRequest, dict]] = None, + *, + spoke: Optional[hub.Spoke] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Updates the parameters of a Network Connectivity + Center spoke. + + .. 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 networkconnectivity_v1 + + def sample_update_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.UpdateSpokeRequest( + ) + + # Make the request + operation = client.update_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest, dict]): + The request object. Request for + [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke] + method. + spoke (google.cloud.networkconnectivity_v1.types.Spoke): + Required. The state that the spoke + should be in after the update. + + This corresponds to the ``spoke`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + update_mask (google.protobuf.field_mask_pb2.FieldMask): + Optional. In the case of an update to an existing spoke, + field mask is used to specify the fields to be + overwritten. The fields specified in the update_mask are + relative to the resource, not the full request. A field + is overwritten if it is in the mask. If the user does + not provide a mask, then all fields are overwritten. + + This corresponds to the ``update_mask`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network + connectivity resources. + + When you create a spoke, you associate it with a hub. + You must also identify a value for exactly one of the + following fields: + + - linked_vpn_tunnels + - linked_interconnect_attachments + - linked_router_appliance_instances + - linked_vpc_network + + """ + # 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([spoke, update_mask]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.UpdateSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.UpdateSpokeRequest): + request = hub.UpdateSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if spoke is not None: + request.spoke = spoke + if update_mask is not None: + request.update_mask = update_mask + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.update_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("spoke.name", request.spoke.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + hub.Spoke, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def reject_hub_spoke(self, + request: Optional[Union[hub.RejectHubSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + spoke_uri: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Rejects a Network Connectivity Center spoke from being attached + to a hub. If the spoke was previously in the ``ACTIVE`` state, + it transitions to the ``INACTIVE`` state and is no longer able + to connect to other spokes that are attached to the hub. + + .. 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 networkconnectivity_v1 + + def sample_reject_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.RejectHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.reject_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest, dict]): + The request object. The request for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. + name (str): + Required. The name of the hub from + which to reject the spoke. + + This corresponds to the ``name`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_uri (str): + Required. The URI of the spoke to + reject from the hub. + + This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.RejectHubSpokeResponse` The response for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. + + """ + # 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([name, spoke_uri]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.RejectHubSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.RejectHubSpokeRequest): + request = hub.RejectHubSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + if spoke_uri is not None: + request.spoke_uri = spoke_uri + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.reject_hub_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + hub.RejectHubSpokeResponse, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def accept_hub_spoke(self, + request: Optional[Union[hub.AcceptHubSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + spoke_uri: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Accepts a proposal to attach a Network Connectivity + Center spoke to a hub. + + .. 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 networkconnectivity_v1 + + def sample_accept_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.AcceptHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.accept_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest, dict]): + The request object. The request for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + name (str): + Required. The name of the hub into + which to accept the spoke. + + This corresponds to the ``name`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_uri (str): + Required. The URI of the spoke to + accept into the hub. + + This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.AcceptHubSpokeResponse` The response for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + + """ + # 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([name, spoke_uri]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.AcceptHubSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.AcceptHubSpokeRequest): + request = hub.AcceptHubSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + if spoke_uri is not None: + request.spoke_uri = spoke_uri + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.accept_hub_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + hub.AcceptHubSpokeResponse, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def delete_spoke(self, + request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Deletes a Network Connectivity Center spoke. + + .. 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 networkconnectivity_v1 + + def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest, dict]): + The request object. The request for + [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. + name (str): + Required. The name of the spoke to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.DeleteSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.DeleteSpokeRequest): + request = hub.DeleteSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.delete_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def get_route_table(self, + request: Optional[Union[hub.GetRouteTableRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.RouteTable: + r"""Gets details about a Network Connectivity Center + route table. + + .. 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 networkconnectivity_v1 + + def sample_get_route_table(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteTableRequest( + name="name_value", + ) + + # Make the request + response = client.get_route_table(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.GetRouteTableRequest, dict]): + The request object. The request for + [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. + name (str): + Required. The name of the route table + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.RouteTable: + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetRouteTableRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetRouteTableRequest): + request = hub.GetRouteTableRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_route_table] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_route(self, + request: Optional[Union[hub.GetRouteRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Route: + r"""Gets details about the specified route. + + .. 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 networkconnectivity_v1 + + def sample_get_route(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteRequest( + name="name_value", + ) + + # Make the request + response = client.get_route(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.GetRouteRequest, dict]): + The request object. The request for + [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. + name (str): + Required. The name of the route + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Route: + A route defines a path from VM + instances within a spoke to a specific + destination resource. Only VPC spokes + have routes. + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetRouteRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetRouteRequest): + request = hub.GetRouteRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_route] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def list_routes(self, + request: Optional[Union[hub.ListRoutesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListRoutesPager: + r"""Lists routes in a given 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 networkconnectivity_v1 + + def sample_list_routes(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_routes(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListRoutesRequest, dict]): + The request object. Request for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + parent (str): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesPager: + Response for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + + 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([parent]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListRoutesRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListRoutesRequest): + request = hub.ListRoutesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_routes] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # 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.ListRoutesPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def list_route_tables(self, + request: Optional[Union[hub.ListRouteTablesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListRouteTablesPager: + r"""Lists route tables in a given 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 networkconnectivity_v1 + + def sample_list_route_tables(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRouteTablesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_route_tables(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest, dict]): + The request object. Request for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + parent (str): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesPager: + Response for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + + 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([parent]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListRouteTablesRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListRouteTablesRequest): + request = hub.ListRouteTablesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_route_tables] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # 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.ListRouteTablesPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_group(self, + request: Optional[Union[hub.GetGroupRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Group: + r"""Gets details about a Network Connectivity Center + group. + + .. 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 networkconnectivity_v1 + + def sample_get_group(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetGroupRequest( + name="name_value", + ) + + # Make the request + response = client.get_group(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.GetGroupRequest, dict]): + The request object. The request for + [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. + name (str): + Required. The name of the route table + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Group: + A group represents a subset of spokes + attached to a hub. + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetGroupRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetGroupRequest): + request = hub.GetGroupRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_group] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def list_groups(self, + request: Optional[Union[hub.ListGroupsRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListGroupsPager: + r"""Lists groups in a given hub. + + .. 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 networkconnectivity_v1 + + def sample_list_groups(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListGroupsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_groups(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListGroupsRequest, dict]): + The request object. Request for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + parent (str): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsPager: + Response for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + + 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([parent]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListGroupsRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListGroupsRequest): + request = hub.ListGroupsRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_groups] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # 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.ListGroupsPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def __enter__(self) -> "HubServiceClient": + return self + + def __exit__(self, type, value, traceback): + """Releases underlying transport's resources. + + .. warning:: + ONLY use as a context manager if the transport is NOT shared + with other clients! Exiting the with block will CLOSE the transport + and may cause errors in other clients! + """ + self.transport.close() + + def list_operations( + self, + request: Optional[operations_pb2.ListOperationsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operations_pb2.ListOperationsResponse: + r"""Lists operations that match the specified filter in the request. + + Args: + request (:class:`~.operations_pb2.ListOperationsRequest`): + The request object. Request message for + `ListOperations` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.operations_pb2.ListOperationsResponse: + Response message for ``ListOperations`` method. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.ListOperationsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.list_operations, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def get_operation( + self, + request: Optional[operations_pb2.GetOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operations_pb2.Operation: + r"""Gets the latest state of a long-running operation. + + Args: + request (:class:`~.operations_pb2.GetOperationRequest`): + The request object. Request message for + `GetOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.operations_pb2.Operation: + An ``Operation`` object. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.GetOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.get_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def delete_operation( + self, + request: Optional[operations_pb2.DeleteOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> None: + r"""Deletes a long-running operation. + + This method indicates that the client is no longer interested + in the operation result. It does not cancel the operation. + If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + + Args: + request (:class:`~.operations_pb2.DeleteOperationRequest`): + The request object. Request message for + `DeleteOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + None + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.DeleteOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.delete_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + rpc(request, retry=retry, timeout=timeout, metadata=metadata,) + + def cancel_operation( + self, + request: Optional[operations_pb2.CancelOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> None: + r"""Starts asynchronous cancellation on a long-running operation. + + The server makes a best effort to cancel the operation, but success + is not guaranteed. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + + Args: + request (:class:`~.operations_pb2.CancelOperationRequest`): + The request object. Request message for + `CancelOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + None + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.CancelOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.cancel_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + rpc(request, retry=retry, timeout=timeout, metadata=metadata,) + + def set_iam_policy( + self, + request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_pb2.Policy: + r"""Sets the IAM access control policy on the specified function. + + Replaces any existing policy. + + Args: + request (:class:`~.iam_policy_pb2.SetIamPolicyRequest`): + The request object. Request message for `SetIamPolicy` + method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.policy_pb2.Policy: + Defines an Identity and Access Management (IAM) policy. + It is used to specify access control policies for Cloud + Platform resources. + A ``Policy`` is a collection of ``bindings``. A + ``binding`` binds one or more ``members`` to a single + ``role``. Members can be user accounts, service + accounts, Google groups, and domains (such as G Suite). + A ``role`` is a named list of permissions (defined by + IAM or configured by users). A ``binding`` can + optionally specify a ``condition``, which is a logic + expression that further constrains the role binding + based on attributes about the request and/or target + resource. + + **JSON Example** + + :: + + { + "bindings": [ + { + "role": "roles/resourcemanager.organizationAdmin", + "members": [ + "user:mike@example.com", + "group:admins@example.com", + "domain:google.com", + "serviceAccount:my-project-id@appspot.gserviceaccount.com" + ] + }, + { + "role": "roles/resourcemanager.organizationViewer", + "members": ["user:eve@example.com"], + "condition": { + "title": "expirable access", + "description": "Does not grant access after Sep 2020", + "expression": "request.time < + timestamp('2020-10-01T00:00:00.000Z')", + } + } + ] + } + + **YAML Example** + + :: + + bindings: + - members: + - user:mike@example.com + - group:admins@example.com + - domain:google.com + - serviceAccount:my-project-id@appspot.gserviceaccount.com + role: roles/resourcemanager.organizationAdmin + - members: + - user:eve@example.com + role: roles/resourcemanager.organizationViewer + condition: + title: expirable access + description: Does not grant access after Sep 2020 + expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + + For a description of IAM and its features, see the `IAM + developer's + guide `__. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.SetIamPolicyRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.set_iam_policy, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def get_iam_policy( + self, + request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_pb2.Policy: + r"""Gets the IAM access control policy for a function. + + Returns an empty policy if the function exists and does not have a + policy set. + + Args: + request (:class:`~.iam_policy_pb2.GetIamPolicyRequest`): + The request object. Request message for `GetIamPolicy` + method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.policy_pb2.Policy: + Defines an Identity and Access Management (IAM) policy. + It is used to specify access control policies for Cloud + Platform resources. + A ``Policy`` is a collection of ``bindings``. A + ``binding`` binds one or more ``members`` to a single + ``role``. Members can be user accounts, service + accounts, Google groups, and domains (such as G Suite). + A ``role`` is a named list of permissions (defined by + IAM or configured by users). A ``binding`` can + optionally specify a ``condition``, which is a logic + expression that further constrains the role binding + based on attributes about the request and/or target + resource. + + **JSON Example** + + :: + + { + "bindings": [ + { + "role": "roles/resourcemanager.organizationAdmin", + "members": [ + "user:mike@example.com", + "group:admins@example.com", + "domain:google.com", + "serviceAccount:my-project-id@appspot.gserviceaccount.com" + ] + }, + { + "role": "roles/resourcemanager.organizationViewer", + "members": ["user:eve@example.com"], + "condition": { + "title": "expirable access", + "description": "Does not grant access after Sep 2020", + "expression": "request.time < + timestamp('2020-10-01T00:00:00.000Z')", + } + } + ] + } + + **YAML Example** + + :: + + bindings: + - members: + - user:mike@example.com + - group:admins@example.com + - domain:google.com + - serviceAccount:my-project-id@appspot.gserviceaccount.com + role: roles/resourcemanager.organizationAdmin + - members: + - user:eve@example.com + role: roles/resourcemanager.organizationViewer + condition: + title: expirable access + description: Does not grant access after Sep 2020 + expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + + For a description of IAM and its features, see the `IAM + developer's + guide `__. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.GetIamPolicyRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.get_iam_policy, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def test_iam_permissions( + self, + request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> iam_policy_pb2.TestIamPermissionsResponse: + r"""Tests the specified IAM permissions against the IAM access control + policy for a function. + + If the function does not exist, this will return an empty set + of permissions, not a NOT_FOUND error. + + Args: + request (:class:`~.iam_policy_pb2.TestIamPermissionsRequest`): + The request object. Request message for + `TestIamPermissions` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.iam_policy_pb2.TestIamPermissionsResponse: + Response message for ``TestIamPermissions`` method. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.TestIamPermissionsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.test_iam_permissions, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def get_location( + self, + request: Optional[locations_pb2.GetLocationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> locations_pb2.Location: + r"""Gets information about a location. + + Args: + request (:class:`~.location_pb2.GetLocationRequest`): + The request object. Request message for + `GetLocation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.location_pb2.Location: + Location object. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = locations_pb2.GetLocationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.get_location, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def list_locations( + self, + request: Optional[locations_pb2.ListLocationsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> locations_pb2.ListLocationsResponse: + r"""Lists information about the supported locations for this service. + + Args: + request (:class:`~.location_pb2.ListLocationsRequest`): + The request object. Request message for + `ListLocations` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.location_pb2.ListLocationsResponse: + Response message for ``ListLocations`` method. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = locations_pb2.ListLocationsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.list_locations, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) + + +__all__ = ( + "HubServiceClient", +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py new file mode 100644 index 000000000000..9e66a251c2e3 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py @@ -0,0 +1,744 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator + +from google.cloud.networkconnectivity_v1.types import hub + + +class ListHubsPager: + """A pager for iterating through ``list_hubs`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListHubsResponse` object, and + provides an ``__iter__`` method to iterate through its + ``hubs`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListHubs`` requests and continue to iterate + through the ``hubs`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubsResponse` + 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[..., hub.ListHubsResponse], + request: hub.ListHubsRequest, + response: hub.ListHubsResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListHubsRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListHubsResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListHubsRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListHubsResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Hub]: + for page in self.pages: + yield from page.hubs + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListHubsAsyncPager: + """A pager for iterating through ``list_hubs`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListHubsResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``hubs`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListHubs`` requests and continue to iterate + through the ``hubs`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubsResponse` + 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[..., Awaitable[hub.ListHubsResponse]], + request: hub.ListHubsRequest, + response: hub.ListHubsResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListHubsRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListHubsResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListHubsRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListHubsResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + def __aiter__(self) -> AsyncIterator[hub.Hub]: + async def async_generator(): + async for page in self.pages: + for response in page.hubs: + yield response + + return async_generator() + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListHubSpokesPager: + """A pager for iterating through ``list_hub_spokes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` object, and + provides an ``__iter__`` method to iterate through its + ``spokes`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListHubSpokes`` requests and continue to iterate + through the ``spokes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` + 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[..., hub.ListHubSpokesResponse], + request: hub.ListHubSpokesRequest, + response: hub.ListHubSpokesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListHubSpokesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListHubSpokesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Spoke]: + for page in self.pages: + yield from page.spokes + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListHubSpokesAsyncPager: + """A pager for iterating through ``list_hub_spokes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``spokes`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListHubSpokes`` requests and continue to iterate + through the ``spokes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` + 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[..., Awaitable[hub.ListHubSpokesResponse]], + request: hub.ListHubSpokesRequest, + response: hub.ListHubSpokesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListHubSpokesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListHubSpokesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + def __aiter__(self) -> AsyncIterator[hub.Spoke]: + async def async_generator(): + async for page in self.pages: + for response in page.spokes: + yield response + + return async_generator() + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListSpokesPager: + """A pager for iterating through ``list_spokes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListSpokesResponse` object, and + provides an ``__iter__`` method to iterate through its + ``spokes`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListSpokes`` requests and continue to iterate + through the ``spokes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListSpokesResponse` + 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[..., hub.ListSpokesResponse], + request: hub.ListSpokesRequest, + response: hub.ListSpokesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListSpokesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListSpokesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListSpokesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListSpokesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Spoke]: + for page in self.pages: + yield from page.spokes + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListSpokesAsyncPager: + """A pager for iterating through ``list_spokes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListSpokesResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``spokes`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListSpokes`` requests and continue to iterate + through the ``spokes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListSpokesResponse` + 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[..., Awaitable[hub.ListSpokesResponse]], + request: hub.ListSpokesRequest, + response: hub.ListSpokesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListSpokesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListSpokesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListSpokesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListSpokesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + def __aiter__(self) -> AsyncIterator[hub.Spoke]: + async def async_generator(): + async for page in self.pages: + for response in page.spokes: + yield response + + return async_generator() + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListRoutesPager: + """A pager for iterating through ``list_routes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` object, and + provides an ``__iter__`` method to iterate through its + ``routes`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListRoutes`` requests and continue to iterate + through the ``routes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` + 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[..., hub.ListRoutesResponse], + request: hub.ListRoutesRequest, + response: hub.ListRoutesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListRoutesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListRoutesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListRoutesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListRoutesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Route]: + for page in self.pages: + yield from page.routes + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListRoutesAsyncPager: + """A pager for iterating through ``list_routes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``routes`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListRoutes`` requests and continue to iterate + through the ``routes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` + 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[..., Awaitable[hub.ListRoutesResponse]], + request: hub.ListRoutesRequest, + response: hub.ListRoutesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListRoutesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListRoutesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListRoutesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListRoutesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + def __aiter__(self) -> AsyncIterator[hub.Route]: + async def async_generator(): + async for page in self.pages: + for response in page.routes: + yield response + + return async_generator() + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListRouteTablesPager: + """A pager for iterating through ``list_route_tables`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` object, and + provides an ``__iter__`` method to iterate through its + ``route_tables`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListRouteTables`` requests and continue to iterate + through the ``route_tables`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` + 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[..., hub.ListRouteTablesResponse], + request: hub.ListRouteTablesRequest, + response: hub.ListRouteTablesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListRouteTablesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListRouteTablesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.RouteTable]: + for page in self.pages: + yield from page.route_tables + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListRouteTablesAsyncPager: + """A pager for iterating through ``list_route_tables`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``route_tables`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListRouteTables`` requests and continue to iterate + through the ``route_tables`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` + 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[..., Awaitable[hub.ListRouteTablesResponse]], + request: hub.ListRouteTablesRequest, + response: hub.ListRouteTablesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListRouteTablesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListRouteTablesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + def __aiter__(self) -> AsyncIterator[hub.RouteTable]: + async def async_generator(): + async for page in self.pages: + for response in page.route_tables: + yield response + + return async_generator() + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListGroupsPager: + """A pager for iterating through ``list_groups`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` object, and + provides an ``__iter__`` method to iterate through its + ``groups`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListGroups`` requests and continue to iterate + through the ``groups`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` + 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[..., hub.ListGroupsResponse], + request: hub.ListGroupsRequest, + response: hub.ListGroupsResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListGroupsRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListGroupsResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListGroupsRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListGroupsResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Group]: + for page in self.pages: + yield from page.groups + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListGroupsAsyncPager: + """A pager for iterating through ``list_groups`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``groups`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListGroups`` requests and continue to iterate + through the ``groups`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` + 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[..., Awaitable[hub.ListGroupsResponse]], + request: hub.ListGroupsRequest, + response: hub.ListGroupsResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListGroupsRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListGroupsResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListGroupsRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListGroupsResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + def __aiter__(self) -> AsyncIterator[hub.Group]: + async def async_generator(): + async for page in self.pages: + for response in page.groups: + yield response + + return async_generator() + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/__init__.py new file mode 100644 index 000000000000..029a0f72b9dd --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/__init__.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from collections import OrderedDict +from typing import Dict, Type + +from .base import HubServiceTransport +from .grpc import HubServiceGrpcTransport +from .grpc_asyncio import HubServiceGrpcAsyncIOTransport + + +# Compile a registry of transports. +_transport_registry = OrderedDict() # type: Dict[str, Type[HubServiceTransport]] +_transport_registry['grpc'] = HubServiceGrpcTransport +_transport_registry['grpc_asyncio'] = HubServiceGrpcAsyncIOTransport + +__all__ = ( + 'HubServiceTransport', + 'HubServiceGrpcTransport', + 'HubServiceGrpcAsyncIOTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py new file mode 100644 index 000000000000..c04f1d1d689e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py @@ -0,0 +1,493 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import abc +from typing import Awaitable, Callable, Dict, Optional, Sequence, Union + +from google.cloud.networkconnectivity_v1 import gapic_version as package_version + +import google.auth # type: ignore +import google.api_core +from google.api_core import exceptions as core_exceptions +from google.api_core import gapic_v1 +from google.api_core import retry as retries +from google.api_core import operations_v1 +from google.auth import credentials as ga_credentials # type: ignore +from google.oauth2 import service_account # type: ignore + +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.types import hub +from google.cloud.networkconnectivity_v1.types import hub as gcn_hub +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore + +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) + + +class HubServiceTransport(abc.ABC): + """Abstract transport class for HubService.""" + + AUTH_SCOPES = ( + 'https://www.googleapis.com/auth/cloud-platform', + ) + + DEFAULT_HOST: str = 'networkconnectivity.googleapis.com' + def __init__( + self, *, + host: str = DEFAULT_HOST, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + quota_project_id: Optional[str] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + always_use_jwt_access: Optional[bool] = False, + api_audience: Optional[str] = None, + **kwargs, + ) -> None: + """Instantiate the transport. + + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is mutually exclusive with credentials. + scopes (Optional[Sequence[str]]): A list of scopes. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + """ + + scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} + + # Save the scopes. + self._scopes = scopes + + # If no credentials are provided, then determine the appropriate + # defaults. + if credentials and credentials_file: + raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive") + + if credentials_file is not None: + credentials, _ = google.auth.load_credentials_from_file( + credentials_file, + **scopes_kwargs, + quota_project_id=quota_project_id + ) + elif credentials is None: + credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id) + # Don't apply audience if the credentials file passed from user. + if hasattr(credentials, "with_gdch_audience"): + credentials = credentials.with_gdch_audience(api_audience if api_audience else host) + + # If the credentials are service account credentials, then always try to use self signed JWT. + if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"): + credentials = credentials.with_always_use_jwt_access(True) + + # Save the credentials. + self._credentials = credentials + + # Save the hostname. Default to port 443 (HTTPS) if none is specified. + if ':' not in host: + host += ':443' + self._host = host + + def _prep_wrapped_messages(self, client_info): + # Precompute the wrapped methods. + self._wrapped_methods = { + self.list_hubs: gapic_v1.method.wrap_method( + self.list_hubs, + default_timeout=None, + client_info=client_info, + ), + self.get_hub: gapic_v1.method.wrap_method( + self.get_hub, + default_timeout=None, + client_info=client_info, + ), + self.create_hub: gapic_v1.method.wrap_method( + self.create_hub, + default_timeout=60.0, + client_info=client_info, + ), + self.update_hub: gapic_v1.method.wrap_method( + self.update_hub, + default_timeout=60.0, + client_info=client_info, + ), + self.delete_hub: gapic_v1.method.wrap_method( + self.delete_hub, + default_timeout=60.0, + client_info=client_info, + ), + self.list_hub_spokes: gapic_v1.method.wrap_method( + self.list_hub_spokes, + default_timeout=None, + client_info=client_info, + ), + self.list_spokes: gapic_v1.method.wrap_method( + self.list_spokes, + default_timeout=None, + client_info=client_info, + ), + self.get_spoke: gapic_v1.method.wrap_method( + self.get_spoke, + default_timeout=None, + client_info=client_info, + ), + self.create_spoke: gapic_v1.method.wrap_method( + self.create_spoke, + default_timeout=60.0, + client_info=client_info, + ), + self.update_spoke: gapic_v1.method.wrap_method( + self.update_spoke, + default_timeout=60.0, + client_info=client_info, + ), + self.reject_hub_spoke: gapic_v1.method.wrap_method( + self.reject_hub_spoke, + default_timeout=None, + client_info=client_info, + ), + self.accept_hub_spoke: gapic_v1.method.wrap_method( + self.accept_hub_spoke, + default_timeout=None, + client_info=client_info, + ), + self.delete_spoke: gapic_v1.method.wrap_method( + self.delete_spoke, + default_timeout=60.0, + client_info=client_info, + ), + self.get_route_table: gapic_v1.method.wrap_method( + self.get_route_table, + default_timeout=None, + client_info=client_info, + ), + self.get_route: gapic_v1.method.wrap_method( + self.get_route, + default_timeout=None, + client_info=client_info, + ), + self.list_routes: gapic_v1.method.wrap_method( + self.list_routes, + default_timeout=None, + client_info=client_info, + ), + self.list_route_tables: gapic_v1.method.wrap_method( + self.list_route_tables, + default_timeout=None, + client_info=client_info, + ), + self.get_group: gapic_v1.method.wrap_method( + self.get_group, + default_timeout=None, + client_info=client_info, + ), + self.list_groups: gapic_v1.method.wrap_method( + self.list_groups, + default_timeout=None, + client_info=client_info, + ), + } + + def close(self): + """Closes resources associated with the transport. + + .. warning:: + Only call this method if the transport is NOT shared + with other clients - this may cause errors in other clients! + """ + raise NotImplementedError() + + @property + def operations_client(self): + """Return the client designed to process long-running operations.""" + raise NotImplementedError() + + @property + def list_hubs(self) -> Callable[ + [hub.ListHubsRequest], + Union[ + hub.ListHubsResponse, + Awaitable[hub.ListHubsResponse] + ]]: + raise NotImplementedError() + + @property + def get_hub(self) -> Callable[ + [hub.GetHubRequest], + Union[ + hub.Hub, + Awaitable[hub.Hub] + ]]: + raise NotImplementedError() + + @property + def create_hub(self) -> Callable[ + [gcn_hub.CreateHubRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def update_hub(self) -> Callable[ + [gcn_hub.UpdateHubRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def delete_hub(self) -> Callable[ + [hub.DeleteHubRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def list_hub_spokes(self) -> Callable[ + [hub.ListHubSpokesRequest], + Union[ + hub.ListHubSpokesResponse, + Awaitable[hub.ListHubSpokesResponse] + ]]: + raise NotImplementedError() + + @property + def list_spokes(self) -> Callable[ + [hub.ListSpokesRequest], + Union[ + hub.ListSpokesResponse, + Awaitable[hub.ListSpokesResponse] + ]]: + raise NotImplementedError() + + @property + def get_spoke(self) -> Callable[ + [hub.GetSpokeRequest], + Union[ + hub.Spoke, + Awaitable[hub.Spoke] + ]]: + raise NotImplementedError() + + @property + def create_spoke(self) -> Callable[ + [hub.CreateSpokeRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def update_spoke(self) -> Callable[ + [hub.UpdateSpokeRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def reject_hub_spoke(self) -> Callable[ + [hub.RejectHubSpokeRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def accept_hub_spoke(self) -> Callable[ + [hub.AcceptHubSpokeRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def delete_spoke(self) -> Callable[ + [hub.DeleteSpokeRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def get_route_table(self) -> Callable[ + [hub.GetRouteTableRequest], + Union[ + hub.RouteTable, + Awaitable[hub.RouteTable] + ]]: + raise NotImplementedError() + + @property + def get_route(self) -> Callable[ + [hub.GetRouteRequest], + Union[ + hub.Route, + Awaitable[hub.Route] + ]]: + raise NotImplementedError() + + @property + def list_routes(self) -> Callable[ + [hub.ListRoutesRequest], + Union[ + hub.ListRoutesResponse, + Awaitable[hub.ListRoutesResponse] + ]]: + raise NotImplementedError() + + @property + def list_route_tables(self) -> Callable[ + [hub.ListRouteTablesRequest], + Union[ + hub.ListRouteTablesResponse, + Awaitable[hub.ListRouteTablesResponse] + ]]: + raise NotImplementedError() + + @property + def get_group(self) -> Callable[ + [hub.GetGroupRequest], + Union[ + hub.Group, + Awaitable[hub.Group] + ]]: + raise NotImplementedError() + + @property + def list_groups(self) -> Callable[ + [hub.ListGroupsRequest], + Union[ + hub.ListGroupsResponse, + Awaitable[hub.ListGroupsResponse] + ]]: + raise NotImplementedError() + + @property + def list_operations( + self, + ) -> Callable[ + [operations_pb2.ListOperationsRequest], + Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]], + ]: + raise NotImplementedError() + + @property + def get_operation( + self, + ) -> Callable[ + [operations_pb2.GetOperationRequest], + Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]], + ]: + raise NotImplementedError() + + @property + def cancel_operation( + self, + ) -> Callable[ + [operations_pb2.CancelOperationRequest], + None, + ]: + raise NotImplementedError() + + @property + def delete_operation( + self, + ) -> Callable[ + [operations_pb2.DeleteOperationRequest], + None, + ]: + raise NotImplementedError() + + @property + def set_iam_policy( + self, + ) -> Callable[ + [iam_policy_pb2.SetIamPolicyRequest], + Union[policy_pb2.Policy, Awaitable[policy_pb2.Policy]], + ]: + raise NotImplementedError() + + @property + def get_iam_policy( + self, + ) -> Callable[ + [iam_policy_pb2.GetIamPolicyRequest], + Union[policy_pb2.Policy, Awaitable[policy_pb2.Policy]], + ]: + raise NotImplementedError() + + @property + def test_iam_permissions( + self, + ) -> Callable[ + [iam_policy_pb2.TestIamPermissionsRequest], + Union[ + iam_policy_pb2.TestIamPermissionsResponse, + Awaitable[iam_policy_pb2.TestIamPermissionsResponse], + ], + ]: + raise NotImplementedError() + + @property + def get_location(self, + ) -> Callable[ + [locations_pb2.GetLocationRequest], + Union[locations_pb2.Location, Awaitable[locations_pb2.Location]], + ]: + raise NotImplementedError() + + @property + def list_locations(self, + ) -> Callable[ + [locations_pb2.ListLocationsRequest], + Union[locations_pb2.ListLocationsResponse, Awaitable[locations_pb2.ListLocationsResponse]], + ]: + raise NotImplementedError() + + @property + def kind(self) -> str: + raise NotImplementedError() + + +__all__ = ( + 'HubServiceTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py new file mode 100644 index 000000000000..ad64f9a3eccb --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py @@ -0,0 +1,960 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import warnings +from typing import Callable, Dict, Optional, Sequence, Tuple, Union + +from google.api_core import grpc_helpers +from google.api_core import operations_v1 +from google.api_core import gapic_v1 +import google.auth # type: ignore +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore + +import grpc # type: ignore + +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.types import hub +from google.cloud.networkconnectivity_v1.types import hub as gcn_hub +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from .base import HubServiceTransport, DEFAULT_CLIENT_INFO + + +class HubServiceGrpcTransport(HubServiceTransport): + """gRPC backend transport for HubService. + + Network Connectivity Center is a hub-and-spoke abstraction + for network connectivity management in Google Cloud. It reduces + operational complexity through a simple, centralized + connectivity management model. + + This class defines the same methods as the primary client, so the + primary client can load the underlying transport implementation + and call it. + + It sends protocol buffers over the wire using gRPC (which is built on + top of HTTP/2); the ``grpcio`` package must be installed. + """ + _stubs: Dict[str, Callable] + + def __init__(self, *, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[grpc.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + always_use_jwt_access: Optional[bool] = False, + api_audience: Optional[str] = None, + ) -> None: + """Instantiate the transport. + + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is ignored if ``channel`` is provided. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional(Sequence[str])): A list of scopes. This argument is + ignored if ``channel`` is provided. + channel (Optional[grpc.Channel]): A ``Channel`` instance through + which to make calls. + api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. + If provided, it overrides the ``host`` argument and tries to create + a mutual TLS channel with client SSL credentials from + ``client_cert_source`` or application default SSL credentials. + client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): + Deprecated. A callback to provide client SSL certificate bytes and + private key bytes, both in PEM format. It is ignored if + ``api_mtls_endpoint`` is None. + ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials + for the grpc channel. It is ignored if ``channel`` is provided. + client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): + A callback to provide client certificate bytes and private key bytes, + both in PEM format. It is used to configure a mutual TLS channel. It is + ignored if ``channel`` or ``ssl_channel_credentials`` is provided. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport + creation failed for any reason. + google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` + and ``credentials_file`` are passed. + """ + self._grpc_channel = None + self._ssl_channel_credentials = ssl_channel_credentials + self._stubs: Dict[str, Callable] = {} + self._operations_client: Optional[operations_v1.OperationsClient] = None + + if api_mtls_endpoint: + warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) + if client_cert_source: + warnings.warn("client_cert_source is deprecated", DeprecationWarning) + + if channel: + # Ignore credentials if a channel was passed. + credentials = False + # If a channel was explicitly provided, set it. + self._grpc_channel = channel + self._ssl_channel_credentials = None + + else: + if api_mtls_endpoint: + host = api_mtls_endpoint + + # Create SSL credentials with client_cert_source or application + # default SSL credentials. + if client_cert_source: + cert, key = client_cert_source() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + else: + self._ssl_channel_credentials = SslCredentials().ssl_credentials + + else: + if client_cert_source_for_mtls and not ssl_channel_credentials: + cert, key = client_cert_source_for_mtls() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + + # The base transport sets the host, credentials and scopes + super().__init__( + host=host, + credentials=credentials, + credentials_file=credentials_file, + scopes=scopes, + quota_project_id=quota_project_id, + client_info=client_info, + always_use_jwt_access=always_use_jwt_access, + api_audience=api_audience, + ) + + if not self._grpc_channel: + self._grpc_channel = type(self).create_channel( + self._host, + # use the credentials which are saved + credentials=self._credentials, + # Set ``credentials_file`` to ``None`` here as + # the credentials that we saved earlier should be used. + credentials_file=None, + scopes=self._scopes, + ssl_credentials=self._ssl_channel_credentials, + quota_project_id=quota_project_id, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + # Wrap messages. This must be done after self._grpc_channel exists + self._prep_wrapped_messages(client_info) + + @classmethod + def create_channel(cls, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + quota_project_id: Optional[str] = None, + **kwargs) -> grpc.Channel: + """Create and return a gRPC channel object. + Args: + host (Optional[str]): The host for the channel to use. + credentials (Optional[~.Credentials]): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is mutually exclusive with credentials. + scopes (Optional[Sequence[str]]): A optional list of scopes needed for this + service. These are only used when credentials are not specified and + are passed to :func:`google.auth.default`. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + kwargs (Optional[dict]): Keyword arguments, which are passed to the + channel creation. + Returns: + grpc.Channel: A gRPC channel object. + + Raises: + google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` + and ``credentials_file`` are passed. + """ + + return grpc_helpers.create_channel( + host, + credentials=credentials, + credentials_file=credentials_file, + quota_project_id=quota_project_id, + default_scopes=cls.AUTH_SCOPES, + scopes=scopes, + default_host=cls.DEFAULT_HOST, + **kwargs + ) + + @property + def grpc_channel(self) -> grpc.Channel: + """Return the channel designed to connect to this service. + """ + return self._grpc_channel + + @property + def operations_client(self) -> operations_v1.OperationsClient: + """Create the client designed to process long-running operations. + + This property caches on the instance; repeated calls return the same + client. + """ + # Quick check: Only create a new client if we do not already have one. + if self._operations_client is None: + self._operations_client = operations_v1.OperationsClient( + self.grpc_channel + ) + + # Return the client from cache. + return self._operations_client + + @property + def list_hubs(self) -> Callable[ + [hub.ListHubsRequest], + hub.ListHubsResponse]: + r"""Return a callable for the list hubs method over gRPC. + + Lists the Network Connectivity Center hubs associated + with a given project. + + Returns: + Callable[[~.ListHubsRequest], + ~.ListHubsResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_hubs' not in self._stubs: + self._stubs['list_hubs'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListHubs', + request_serializer=hub.ListHubsRequest.serialize, + response_deserializer=hub.ListHubsResponse.deserialize, + ) + return self._stubs['list_hubs'] + + @property + def get_hub(self) -> Callable[ + [hub.GetHubRequest], + hub.Hub]: + r"""Return a callable for the get hub method over gRPC. + + Gets details about a Network Connectivity Center hub. + + Returns: + Callable[[~.GetHubRequest], + ~.Hub]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_hub' not in self._stubs: + self._stubs['get_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetHub', + request_serializer=hub.GetHubRequest.serialize, + response_deserializer=hub.Hub.deserialize, + ) + return self._stubs['get_hub'] + + @property + def create_hub(self) -> Callable[ + [gcn_hub.CreateHubRequest], + operations_pb2.Operation]: + r"""Return a callable for the create hub method over gRPC. + + Creates a new Network Connectivity Center hub in the + specified project. + + Returns: + Callable[[~.CreateHubRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_hub' not in self._stubs: + self._stubs['create_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/CreateHub', + request_serializer=gcn_hub.CreateHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_hub'] + + @property + def update_hub(self) -> Callable[ + [gcn_hub.UpdateHubRequest], + operations_pb2.Operation]: + r"""Return a callable for the update hub method over gRPC. + + Updates the description and/or labels of a Network + Connectivity Center hub. + + Returns: + Callable[[~.UpdateHubRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'update_hub' not in self._stubs: + self._stubs['update_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/UpdateHub', + request_serializer=gcn_hub.UpdateHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['update_hub'] + + @property + def delete_hub(self) -> Callable[ + [hub.DeleteHubRequest], + operations_pb2.Operation]: + r"""Return a callable for the delete hub method over gRPC. + + Deletes a Network Connectivity Center hub. + + Returns: + Callable[[~.DeleteHubRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_hub' not in self._stubs: + self._stubs['delete_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/DeleteHub', + request_serializer=hub.DeleteHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_hub'] + + @property + def list_hub_spokes(self) -> Callable[ + [hub.ListHubSpokesRequest], + hub.ListHubSpokesResponse]: + r"""Return a callable for the list hub spokes method over gRPC. + + Lists the Network Connectivity Center spokes + associated with a specified hub and location. The list + includes both spokes that are attached to the hub and + spokes that have been proposed but not yet accepted. + + Returns: + Callable[[~.ListHubSpokesRequest], + ~.ListHubSpokesResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_hub_spokes' not in self._stubs: + self._stubs['list_hub_spokes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListHubSpokes', + request_serializer=hub.ListHubSpokesRequest.serialize, + response_deserializer=hub.ListHubSpokesResponse.deserialize, + ) + return self._stubs['list_hub_spokes'] + + @property + def list_spokes(self) -> Callable[ + [hub.ListSpokesRequest], + hub.ListSpokesResponse]: + r"""Return a callable for the list spokes method over gRPC. + + Lists the Network Connectivity Center spokes in a + specified project and location. + + Returns: + Callable[[~.ListSpokesRequest], + ~.ListSpokesResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_spokes' not in self._stubs: + self._stubs['list_spokes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListSpokes', + request_serializer=hub.ListSpokesRequest.serialize, + response_deserializer=hub.ListSpokesResponse.deserialize, + ) + return self._stubs['list_spokes'] + + @property + def get_spoke(self) -> Callable[ + [hub.GetSpokeRequest], + hub.Spoke]: + r"""Return a callable for the get spoke method over gRPC. + + Gets details about a Network Connectivity Center + spoke. + + Returns: + Callable[[~.GetSpokeRequest], + ~.Spoke]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_spoke' not in self._stubs: + self._stubs['get_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetSpoke', + request_serializer=hub.GetSpokeRequest.serialize, + response_deserializer=hub.Spoke.deserialize, + ) + return self._stubs['get_spoke'] + + @property + def create_spoke(self) -> Callable[ + [hub.CreateSpokeRequest], + operations_pb2.Operation]: + r"""Return a callable for the create spoke method over gRPC. + + Creates a Network Connectivity Center spoke. + + Returns: + Callable[[~.CreateSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_spoke' not in self._stubs: + self._stubs['create_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/CreateSpoke', + request_serializer=hub.CreateSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_spoke'] + + @property + def update_spoke(self) -> Callable[ + [hub.UpdateSpokeRequest], + operations_pb2.Operation]: + r"""Return a callable for the update spoke method over gRPC. + + Updates the parameters of a Network Connectivity + Center spoke. + + Returns: + Callable[[~.UpdateSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'update_spoke' not in self._stubs: + self._stubs['update_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/UpdateSpoke', + request_serializer=hub.UpdateSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['update_spoke'] + + @property + def reject_hub_spoke(self) -> Callable[ + [hub.RejectHubSpokeRequest], + operations_pb2.Operation]: + r"""Return a callable for the reject hub spoke method over gRPC. + + Rejects a Network Connectivity Center spoke from being attached + to a hub. If the spoke was previously in the ``ACTIVE`` state, + it transitions to the ``INACTIVE`` state and is no longer able + to connect to other spokes that are attached to the hub. + + Returns: + Callable[[~.RejectHubSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'reject_hub_spoke' not in self._stubs: + self._stubs['reject_hub_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/RejectHubSpoke', + request_serializer=hub.RejectHubSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['reject_hub_spoke'] + + @property + def accept_hub_spoke(self) -> Callable[ + [hub.AcceptHubSpokeRequest], + operations_pb2.Operation]: + r"""Return a callable for the accept hub spoke method over gRPC. + + Accepts a proposal to attach a Network Connectivity + Center spoke to a hub. + + Returns: + Callable[[~.AcceptHubSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'accept_hub_spoke' not in self._stubs: + self._stubs['accept_hub_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/AcceptHubSpoke', + request_serializer=hub.AcceptHubSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['accept_hub_spoke'] + + @property + def delete_spoke(self) -> Callable[ + [hub.DeleteSpokeRequest], + operations_pb2.Operation]: + r"""Return a callable for the delete spoke method over gRPC. + + Deletes a Network Connectivity Center spoke. + + Returns: + Callable[[~.DeleteSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_spoke' not in self._stubs: + self._stubs['delete_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/DeleteSpoke', + request_serializer=hub.DeleteSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_spoke'] + + @property + def get_route_table(self) -> Callable[ + [hub.GetRouteTableRequest], + hub.RouteTable]: + r"""Return a callable for the get route table method over gRPC. + + Gets details about a Network Connectivity Center + route table. + + Returns: + Callable[[~.GetRouteTableRequest], + ~.RouteTable]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_route_table' not in self._stubs: + self._stubs['get_route_table'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetRouteTable', + request_serializer=hub.GetRouteTableRequest.serialize, + response_deserializer=hub.RouteTable.deserialize, + ) + return self._stubs['get_route_table'] + + @property + def get_route(self) -> Callable[ + [hub.GetRouteRequest], + hub.Route]: + r"""Return a callable for the get route method over gRPC. + + Gets details about the specified route. + + Returns: + Callable[[~.GetRouteRequest], + ~.Route]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_route' not in self._stubs: + self._stubs['get_route'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetRoute', + request_serializer=hub.GetRouteRequest.serialize, + response_deserializer=hub.Route.deserialize, + ) + return self._stubs['get_route'] + + @property + def list_routes(self) -> Callable[ + [hub.ListRoutesRequest], + hub.ListRoutesResponse]: + r"""Return a callable for the list routes method over gRPC. + + Lists routes in a given project. + + Returns: + Callable[[~.ListRoutesRequest], + ~.ListRoutesResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_routes' not in self._stubs: + self._stubs['list_routes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListRoutes', + request_serializer=hub.ListRoutesRequest.serialize, + response_deserializer=hub.ListRoutesResponse.deserialize, + ) + return self._stubs['list_routes'] + + @property + def list_route_tables(self) -> Callable[ + [hub.ListRouteTablesRequest], + hub.ListRouteTablesResponse]: + r"""Return a callable for the list route tables method over gRPC. + + Lists route tables in a given project. + + Returns: + Callable[[~.ListRouteTablesRequest], + ~.ListRouteTablesResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_route_tables' not in self._stubs: + self._stubs['list_route_tables'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListRouteTables', + request_serializer=hub.ListRouteTablesRequest.serialize, + response_deserializer=hub.ListRouteTablesResponse.deserialize, + ) + return self._stubs['list_route_tables'] + + @property + def get_group(self) -> Callable[ + [hub.GetGroupRequest], + hub.Group]: + r"""Return a callable for the get group method over gRPC. + + Gets details about a Network Connectivity Center + group. + + Returns: + Callable[[~.GetGroupRequest], + ~.Group]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_group' not in self._stubs: + self._stubs['get_group'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetGroup', + request_serializer=hub.GetGroupRequest.serialize, + response_deserializer=hub.Group.deserialize, + ) + return self._stubs['get_group'] + + @property + def list_groups(self) -> Callable[ + [hub.ListGroupsRequest], + hub.ListGroupsResponse]: + r"""Return a callable for the list groups method over gRPC. + + Lists groups in a given hub. + + Returns: + Callable[[~.ListGroupsRequest], + ~.ListGroupsResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_groups' not in self._stubs: + self._stubs['list_groups'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListGroups', + request_serializer=hub.ListGroupsRequest.serialize, + response_deserializer=hub.ListGroupsResponse.deserialize, + ) + return self._stubs['list_groups'] + + def close(self): + self.grpc_channel.close() + + @property + def delete_operation( + self, + ) -> Callable[[operations_pb2.DeleteOperationRequest], None]: + r"""Return a callable for the delete_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "delete_operation" not in self._stubs: + self._stubs["delete_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/DeleteOperation", + request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString, + response_deserializer=None, + ) + return self._stubs["delete_operation"] + + @property + def cancel_operation( + self, + ) -> Callable[[operations_pb2.CancelOperationRequest], None]: + r"""Return a callable for the cancel_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "cancel_operation" not in self._stubs: + self._stubs["cancel_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/CancelOperation", + request_serializer=operations_pb2.CancelOperationRequest.SerializeToString, + response_deserializer=None, + ) + return self._stubs["cancel_operation"] + + @property + def get_operation( + self, + ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]: + r"""Return a callable for the get_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_operation" not in self._stubs: + self._stubs["get_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/GetOperation", + request_serializer=operations_pb2.GetOperationRequest.SerializeToString, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs["get_operation"] + + @property + def list_operations( + self, + ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]: + r"""Return a callable for the list_operations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_operations" not in self._stubs: + self._stubs["list_operations"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/ListOperations", + request_serializer=operations_pb2.ListOperationsRequest.SerializeToString, + response_deserializer=operations_pb2.ListOperationsResponse.FromString, + ) + return self._stubs["list_operations"] + + @property + def list_locations( + self, + ) -> Callable[[locations_pb2.ListLocationsRequest], locations_pb2.ListLocationsResponse]: + r"""Return a callable for the list locations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_locations" not in self._stubs: + self._stubs["list_locations"] = self.grpc_channel.unary_unary( + "/google.cloud.location.Locations/ListLocations", + request_serializer=locations_pb2.ListLocationsRequest.SerializeToString, + response_deserializer=locations_pb2.ListLocationsResponse.FromString, + ) + return self._stubs["list_locations"] + + @property + def get_location( + self, + ) -> Callable[[locations_pb2.GetLocationRequest], locations_pb2.Location]: + r"""Return a callable for the list locations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_location" not in self._stubs: + self._stubs["get_location"] = self.grpc_channel.unary_unary( + "/google.cloud.location.Locations/GetLocation", + request_serializer=locations_pb2.GetLocationRequest.SerializeToString, + response_deserializer=locations_pb2.Location.FromString, + ) + return self._stubs["get_location"] + + @property + def set_iam_policy( + self, + ) -> Callable[[iam_policy_pb2.SetIamPolicyRequest], policy_pb2.Policy]: + r"""Return a callable for the set iam policy method over gRPC. + Sets the IAM access control policy on the specified + function. Replaces any existing policy. + Returns: + Callable[[~.SetIamPolicyRequest], + ~.Policy]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "set_iam_policy" not in self._stubs: + self._stubs["set_iam_policy"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/SetIamPolicy", + request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString, + response_deserializer=policy_pb2.Policy.FromString, + ) + return self._stubs["set_iam_policy"] + + @property + def get_iam_policy( + self, + ) -> Callable[[iam_policy_pb2.GetIamPolicyRequest], policy_pb2.Policy]: + r"""Return a callable for the get iam policy method over gRPC. + Gets the IAM access control policy for a function. + Returns an empty policy if the function exists and does + not have a policy set. + Returns: + Callable[[~.GetIamPolicyRequest], + ~.Policy]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_iam_policy" not in self._stubs: + self._stubs["get_iam_policy"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/GetIamPolicy", + request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString, + response_deserializer=policy_pb2.Policy.FromString, + ) + return self._stubs["get_iam_policy"] + + @property + def test_iam_permissions( + self, + ) -> Callable[ + [iam_policy_pb2.TestIamPermissionsRequest], iam_policy_pb2.TestIamPermissionsResponse + ]: + r"""Return a callable for the test iam permissions method over gRPC. + Tests the specified permissions against the IAM access control + policy for a function. If the function does not exist, this will + return an empty set of permissions, not a NOT_FOUND error. + Returns: + Callable[[~.TestIamPermissionsRequest], + ~.TestIamPermissionsResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "test_iam_permissions" not in self._stubs: + self._stubs["test_iam_permissions"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/TestIamPermissions", + request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString, + response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString, + ) + return self._stubs["test_iam_permissions"] + + @property + def kind(self) -> str: + return "grpc" + + +__all__ = ( + 'HubServiceGrpcTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py new file mode 100644 index 000000000000..0c9778d4635b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py @@ -0,0 +1,959 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import warnings +from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union + +from google.api_core import gapic_v1 +from google.api_core import grpc_helpers_async +from google.api_core import operations_v1 +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore + +import grpc # type: ignore +from grpc.experimental import aio # type: ignore + +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.types import hub +from google.cloud.networkconnectivity_v1.types import hub as gcn_hub +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from .base import HubServiceTransport, DEFAULT_CLIENT_INFO +from .grpc import HubServiceGrpcTransport + + +class HubServiceGrpcAsyncIOTransport(HubServiceTransport): + """gRPC AsyncIO backend transport for HubService. + + Network Connectivity Center is a hub-and-spoke abstraction + for network connectivity management in Google Cloud. It reduces + operational complexity through a simple, centralized + connectivity management model. + + This class defines the same methods as the primary client, so the + primary client can load the underlying transport implementation + and call it. + + It sends protocol buffers over the wire using gRPC (which is built on + top of HTTP/2); the ``grpcio`` package must be installed. + """ + + _grpc_channel: aio.Channel + _stubs: Dict[str, Callable] = {} + + @classmethod + def create_channel(cls, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + quota_project_id: Optional[str] = None, + **kwargs) -> aio.Channel: + """Create and return a gRPC AsyncIO channel object. + Args: + host (Optional[str]): The host for the channel to use. + credentials (Optional[~.Credentials]): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional[Sequence[str]]): A optional list of scopes needed for this + service. These are only used when credentials are not specified and + are passed to :func:`google.auth.default`. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + kwargs (Optional[dict]): Keyword arguments, which are passed to the + channel creation. + Returns: + aio.Channel: A gRPC AsyncIO channel object. + """ + + return grpc_helpers_async.create_channel( + host, + credentials=credentials, + credentials_file=credentials_file, + quota_project_id=quota_project_id, + default_scopes=cls.AUTH_SCOPES, + scopes=scopes, + default_host=cls.DEFAULT_HOST, + **kwargs + ) + + def __init__(self, *, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[aio.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + always_use_jwt_access: Optional[bool] = False, + api_audience: Optional[str] = None, + ) -> None: + """Instantiate the transport. + + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is ignored if ``channel`` is provided. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional[Sequence[str]]): A optional list of scopes needed for this + service. These are only used when credentials are not specified and + are passed to :func:`google.auth.default`. + channel (Optional[aio.Channel]): A ``Channel`` instance through + which to make calls. + api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. + If provided, it overrides the ``host`` argument and tries to create + a mutual TLS channel with client SSL credentials from + ``client_cert_source`` or application default SSL credentials. + client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): + Deprecated. A callback to provide client SSL certificate bytes and + private key bytes, both in PEM format. It is ignored if + ``api_mtls_endpoint`` is None. + ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials + for the grpc channel. It is ignored if ``channel`` is provided. + client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): + A callback to provide client certificate bytes and private key bytes, + both in PEM format. It is used to configure a mutual TLS channel. It is + ignored if ``channel`` or ``ssl_channel_credentials`` is provided. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + + Raises: + google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport + creation failed for any reason. + google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` + and ``credentials_file`` are passed. + """ + self._grpc_channel = None + self._ssl_channel_credentials = ssl_channel_credentials + self._stubs: Dict[str, Callable] = {} + self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None + + if api_mtls_endpoint: + warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) + if client_cert_source: + warnings.warn("client_cert_source is deprecated", DeprecationWarning) + + if channel: + # Ignore credentials if a channel was passed. + credentials = False + # If a channel was explicitly provided, set it. + self._grpc_channel = channel + self._ssl_channel_credentials = None + else: + if api_mtls_endpoint: + host = api_mtls_endpoint + + # Create SSL credentials with client_cert_source or application + # default SSL credentials. + if client_cert_source: + cert, key = client_cert_source() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + else: + self._ssl_channel_credentials = SslCredentials().ssl_credentials + + else: + if client_cert_source_for_mtls and not ssl_channel_credentials: + cert, key = client_cert_source_for_mtls() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + + # The base transport sets the host, credentials and scopes + super().__init__( + host=host, + credentials=credentials, + credentials_file=credentials_file, + scopes=scopes, + quota_project_id=quota_project_id, + client_info=client_info, + always_use_jwt_access=always_use_jwt_access, + api_audience=api_audience, + ) + + if not self._grpc_channel: + self._grpc_channel = type(self).create_channel( + self._host, + # use the credentials which are saved + credentials=self._credentials, + # Set ``credentials_file`` to ``None`` here as + # the credentials that we saved earlier should be used. + credentials_file=None, + scopes=self._scopes, + ssl_credentials=self._ssl_channel_credentials, + quota_project_id=quota_project_id, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + # Wrap messages. This must be done after self._grpc_channel exists + self._prep_wrapped_messages(client_info) + + @property + def grpc_channel(self) -> aio.Channel: + """Create the channel designed to connect to this service. + + This property caches on the instance; repeated calls return + the same channel. + """ + # Return the channel from cache. + return self._grpc_channel + + @property + def operations_client(self) -> operations_v1.OperationsAsyncClient: + """Create the client designed to process long-running operations. + + This property caches on the instance; repeated calls return the same + client. + """ + # Quick check: Only create a new client if we do not already have one. + if self._operations_client is None: + self._operations_client = operations_v1.OperationsAsyncClient( + self.grpc_channel + ) + + # Return the client from cache. + return self._operations_client + + @property + def list_hubs(self) -> Callable[ + [hub.ListHubsRequest], + Awaitable[hub.ListHubsResponse]]: + r"""Return a callable for the list hubs method over gRPC. + + Lists the Network Connectivity Center hubs associated + with a given project. + + Returns: + Callable[[~.ListHubsRequest], + Awaitable[~.ListHubsResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_hubs' not in self._stubs: + self._stubs['list_hubs'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListHubs', + request_serializer=hub.ListHubsRequest.serialize, + response_deserializer=hub.ListHubsResponse.deserialize, + ) + return self._stubs['list_hubs'] + + @property + def get_hub(self) -> Callable[ + [hub.GetHubRequest], + Awaitable[hub.Hub]]: + r"""Return a callable for the get hub method over gRPC. + + Gets details about a Network Connectivity Center hub. + + Returns: + Callable[[~.GetHubRequest], + Awaitable[~.Hub]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_hub' not in self._stubs: + self._stubs['get_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetHub', + request_serializer=hub.GetHubRequest.serialize, + response_deserializer=hub.Hub.deserialize, + ) + return self._stubs['get_hub'] + + @property + def create_hub(self) -> Callable[ + [gcn_hub.CreateHubRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the create hub method over gRPC. + + Creates a new Network Connectivity Center hub in the + specified project. + + Returns: + Callable[[~.CreateHubRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_hub' not in self._stubs: + self._stubs['create_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/CreateHub', + request_serializer=gcn_hub.CreateHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_hub'] + + @property + def update_hub(self) -> Callable[ + [gcn_hub.UpdateHubRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the update hub method over gRPC. + + Updates the description and/or labels of a Network + Connectivity Center hub. + + Returns: + Callable[[~.UpdateHubRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'update_hub' not in self._stubs: + self._stubs['update_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/UpdateHub', + request_serializer=gcn_hub.UpdateHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['update_hub'] + + @property + def delete_hub(self) -> Callable[ + [hub.DeleteHubRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the delete hub method over gRPC. + + Deletes a Network Connectivity Center hub. + + Returns: + Callable[[~.DeleteHubRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_hub' not in self._stubs: + self._stubs['delete_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/DeleteHub', + request_serializer=hub.DeleteHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_hub'] + + @property + def list_hub_spokes(self) -> Callable[ + [hub.ListHubSpokesRequest], + Awaitable[hub.ListHubSpokesResponse]]: + r"""Return a callable for the list hub spokes method over gRPC. + + Lists the Network Connectivity Center spokes + associated with a specified hub and location. The list + includes both spokes that are attached to the hub and + spokes that have been proposed but not yet accepted. + + Returns: + Callable[[~.ListHubSpokesRequest], + Awaitable[~.ListHubSpokesResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_hub_spokes' not in self._stubs: + self._stubs['list_hub_spokes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListHubSpokes', + request_serializer=hub.ListHubSpokesRequest.serialize, + response_deserializer=hub.ListHubSpokesResponse.deserialize, + ) + return self._stubs['list_hub_spokes'] + + @property + def list_spokes(self) -> Callable[ + [hub.ListSpokesRequest], + Awaitable[hub.ListSpokesResponse]]: + r"""Return a callable for the list spokes method over gRPC. + + Lists the Network Connectivity Center spokes in a + specified project and location. + + Returns: + Callable[[~.ListSpokesRequest], + Awaitable[~.ListSpokesResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_spokes' not in self._stubs: + self._stubs['list_spokes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListSpokes', + request_serializer=hub.ListSpokesRequest.serialize, + response_deserializer=hub.ListSpokesResponse.deserialize, + ) + return self._stubs['list_spokes'] + + @property + def get_spoke(self) -> Callable[ + [hub.GetSpokeRequest], + Awaitable[hub.Spoke]]: + r"""Return a callable for the get spoke method over gRPC. + + Gets details about a Network Connectivity Center + spoke. + + Returns: + Callable[[~.GetSpokeRequest], + Awaitable[~.Spoke]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_spoke' not in self._stubs: + self._stubs['get_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetSpoke', + request_serializer=hub.GetSpokeRequest.serialize, + response_deserializer=hub.Spoke.deserialize, + ) + return self._stubs['get_spoke'] + + @property + def create_spoke(self) -> Callable[ + [hub.CreateSpokeRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the create spoke method over gRPC. + + Creates a Network Connectivity Center spoke. + + Returns: + Callable[[~.CreateSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_spoke' not in self._stubs: + self._stubs['create_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/CreateSpoke', + request_serializer=hub.CreateSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_spoke'] + + @property + def update_spoke(self) -> Callable[ + [hub.UpdateSpokeRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the update spoke method over gRPC. + + Updates the parameters of a Network Connectivity + Center spoke. + + Returns: + Callable[[~.UpdateSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'update_spoke' not in self._stubs: + self._stubs['update_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/UpdateSpoke', + request_serializer=hub.UpdateSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['update_spoke'] + + @property + def reject_hub_spoke(self) -> Callable[ + [hub.RejectHubSpokeRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the reject hub spoke method over gRPC. + + Rejects a Network Connectivity Center spoke from being attached + to a hub. If the spoke was previously in the ``ACTIVE`` state, + it transitions to the ``INACTIVE`` state and is no longer able + to connect to other spokes that are attached to the hub. + + Returns: + Callable[[~.RejectHubSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'reject_hub_spoke' not in self._stubs: + self._stubs['reject_hub_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/RejectHubSpoke', + request_serializer=hub.RejectHubSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['reject_hub_spoke'] + + @property + def accept_hub_spoke(self) -> Callable[ + [hub.AcceptHubSpokeRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the accept hub spoke method over gRPC. + + Accepts a proposal to attach a Network Connectivity + Center spoke to a hub. + + Returns: + Callable[[~.AcceptHubSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'accept_hub_spoke' not in self._stubs: + self._stubs['accept_hub_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/AcceptHubSpoke', + request_serializer=hub.AcceptHubSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['accept_hub_spoke'] + + @property + def delete_spoke(self) -> Callable[ + [hub.DeleteSpokeRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the delete spoke method over gRPC. + + Deletes a Network Connectivity Center spoke. + + Returns: + Callable[[~.DeleteSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_spoke' not in self._stubs: + self._stubs['delete_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/DeleteSpoke', + request_serializer=hub.DeleteSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_spoke'] + + @property + def get_route_table(self) -> Callable[ + [hub.GetRouteTableRequest], + Awaitable[hub.RouteTable]]: + r"""Return a callable for the get route table method over gRPC. + + Gets details about a Network Connectivity Center + route table. + + Returns: + Callable[[~.GetRouteTableRequest], + Awaitable[~.RouteTable]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_route_table' not in self._stubs: + self._stubs['get_route_table'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetRouteTable', + request_serializer=hub.GetRouteTableRequest.serialize, + response_deserializer=hub.RouteTable.deserialize, + ) + return self._stubs['get_route_table'] + + @property + def get_route(self) -> Callable[ + [hub.GetRouteRequest], + Awaitable[hub.Route]]: + r"""Return a callable for the get route method over gRPC. + + Gets details about the specified route. + + Returns: + Callable[[~.GetRouteRequest], + Awaitable[~.Route]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_route' not in self._stubs: + self._stubs['get_route'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetRoute', + request_serializer=hub.GetRouteRequest.serialize, + response_deserializer=hub.Route.deserialize, + ) + return self._stubs['get_route'] + + @property + def list_routes(self) -> Callable[ + [hub.ListRoutesRequest], + Awaitable[hub.ListRoutesResponse]]: + r"""Return a callable for the list routes method over gRPC. + + Lists routes in a given project. + + Returns: + Callable[[~.ListRoutesRequest], + Awaitable[~.ListRoutesResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_routes' not in self._stubs: + self._stubs['list_routes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListRoutes', + request_serializer=hub.ListRoutesRequest.serialize, + response_deserializer=hub.ListRoutesResponse.deserialize, + ) + return self._stubs['list_routes'] + + @property + def list_route_tables(self) -> Callable[ + [hub.ListRouteTablesRequest], + Awaitable[hub.ListRouteTablesResponse]]: + r"""Return a callable for the list route tables method over gRPC. + + Lists route tables in a given project. + + Returns: + Callable[[~.ListRouteTablesRequest], + Awaitable[~.ListRouteTablesResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_route_tables' not in self._stubs: + self._stubs['list_route_tables'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListRouteTables', + request_serializer=hub.ListRouteTablesRequest.serialize, + response_deserializer=hub.ListRouteTablesResponse.deserialize, + ) + return self._stubs['list_route_tables'] + + @property + def get_group(self) -> Callable[ + [hub.GetGroupRequest], + Awaitable[hub.Group]]: + r"""Return a callable for the get group method over gRPC. + + Gets details about a Network Connectivity Center + group. + + Returns: + Callable[[~.GetGroupRequest], + Awaitable[~.Group]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_group' not in self._stubs: + self._stubs['get_group'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/GetGroup', + request_serializer=hub.GetGroupRequest.serialize, + response_deserializer=hub.Group.deserialize, + ) + return self._stubs['get_group'] + + @property + def list_groups(self) -> Callable[ + [hub.ListGroupsRequest], + Awaitable[hub.ListGroupsResponse]]: + r"""Return a callable for the list groups method over gRPC. + + Lists groups in a given hub. + + Returns: + Callable[[~.ListGroupsRequest], + Awaitable[~.ListGroupsResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_groups' not in self._stubs: + self._stubs['list_groups'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.HubService/ListGroups', + request_serializer=hub.ListGroupsRequest.serialize, + response_deserializer=hub.ListGroupsResponse.deserialize, + ) + return self._stubs['list_groups'] + + def close(self): + return self.grpc_channel.close() + + @property + def delete_operation( + self, + ) -> Callable[[operations_pb2.DeleteOperationRequest], None]: + r"""Return a callable for the delete_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "delete_operation" not in self._stubs: + self._stubs["delete_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/DeleteOperation", + request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString, + response_deserializer=None, + ) + return self._stubs["delete_operation"] + + @property + def cancel_operation( + self, + ) -> Callable[[operations_pb2.CancelOperationRequest], None]: + r"""Return a callable for the cancel_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "cancel_operation" not in self._stubs: + self._stubs["cancel_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/CancelOperation", + request_serializer=operations_pb2.CancelOperationRequest.SerializeToString, + response_deserializer=None, + ) + return self._stubs["cancel_operation"] + + @property + def get_operation( + self, + ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]: + r"""Return a callable for the get_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_operation" not in self._stubs: + self._stubs["get_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/GetOperation", + request_serializer=operations_pb2.GetOperationRequest.SerializeToString, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs["get_operation"] + + @property + def list_operations( + self, + ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]: + r"""Return a callable for the list_operations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_operations" not in self._stubs: + self._stubs["list_operations"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/ListOperations", + request_serializer=operations_pb2.ListOperationsRequest.SerializeToString, + response_deserializer=operations_pb2.ListOperationsResponse.FromString, + ) + return self._stubs["list_operations"] + + @property + def list_locations( + self, + ) -> Callable[[locations_pb2.ListLocationsRequest], locations_pb2.ListLocationsResponse]: + r"""Return a callable for the list locations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_locations" not in self._stubs: + self._stubs["list_locations"] = self.grpc_channel.unary_unary( + "/google.cloud.location.Locations/ListLocations", + request_serializer=locations_pb2.ListLocationsRequest.SerializeToString, + response_deserializer=locations_pb2.ListLocationsResponse.FromString, + ) + return self._stubs["list_locations"] + + @property + def get_location( + self, + ) -> Callable[[locations_pb2.GetLocationRequest], locations_pb2.Location]: + r"""Return a callable for the list locations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_location" not in self._stubs: + self._stubs["get_location"] = self.grpc_channel.unary_unary( + "/google.cloud.location.Locations/GetLocation", + request_serializer=locations_pb2.GetLocationRequest.SerializeToString, + response_deserializer=locations_pb2.Location.FromString, + ) + return self._stubs["get_location"] + + @property + def set_iam_policy( + self, + ) -> Callable[[iam_policy_pb2.SetIamPolicyRequest], policy_pb2.Policy]: + r"""Return a callable for the set iam policy method over gRPC. + Sets the IAM access control policy on the specified + function. Replaces any existing policy. + Returns: + Callable[[~.SetIamPolicyRequest], + ~.Policy]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "set_iam_policy" not in self._stubs: + self._stubs["set_iam_policy"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/SetIamPolicy", + request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString, + response_deserializer=policy_pb2.Policy.FromString, + ) + return self._stubs["set_iam_policy"] + + @property + def get_iam_policy( + self, + ) -> Callable[[iam_policy_pb2.GetIamPolicyRequest], policy_pb2.Policy]: + r"""Return a callable for the get iam policy method over gRPC. + Gets the IAM access control policy for a function. + Returns an empty policy if the function exists and does + not have a policy set. + Returns: + Callable[[~.GetIamPolicyRequest], + ~.Policy]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_iam_policy" not in self._stubs: + self._stubs["get_iam_policy"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/GetIamPolicy", + request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString, + response_deserializer=policy_pb2.Policy.FromString, + ) + return self._stubs["get_iam_policy"] + + @property + def test_iam_permissions( + self, + ) -> Callable[ + [iam_policy_pb2.TestIamPermissionsRequest], iam_policy_pb2.TestIamPermissionsResponse + ]: + r"""Return a callable for the test iam permissions method over gRPC. + Tests the specified permissions against the IAM access control + policy for a function. If the function does not exist, this will + return an empty set of permissions, not a NOT_FOUND error. + Returns: + Callable[[~.TestIamPermissionsRequest], + ~.TestIamPermissionsResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "test_iam_permissions" not in self._stubs: + self._stubs["test_iam_permissions"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/TestIamPermissions", + request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString, + response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString, + ) + return self._stubs["test_iam_permissions"] + + +__all__ = ( + 'HubServiceGrpcAsyncIOTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/__init__.py new file mode 100644 index 000000000000..b10ca2fb6543 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from .client import PolicyBasedRoutingServiceClient +from .async_client import PolicyBasedRoutingServiceAsyncClient + +__all__ = ( + 'PolicyBasedRoutingServiceClient', + 'PolicyBasedRoutingServiceAsyncClient', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/async_client.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/async_client.py new file mode 100644 index 000000000000..b54183f42246 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/async_client.py @@ -0,0 +1,1297 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from collections import OrderedDict +import functools +import re +from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union + +from google.cloud.networkconnectivity_v1 import gapic_version as package_version + +from google.api_core.client_options import ClientOptions +from google.api_core import exceptions as core_exceptions +from google.api_core import gapic_v1 +from google.api_core import retry as retries +from google.auth import credentials as ga_credentials # type: ignore +from google.oauth2 import service_account # type: ignore + +try: + OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] +except AttributeError: # pragma: NO COVER + OptionalRetry = Union[retries.Retry, object] # type: ignore + +from google.api_core import operation # type: ignore +from google.api_core import operation_async # type: ignore +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import pagers +from google.cloud.networkconnectivity_v1.types import common +from google.cloud.networkconnectivity_v1.types import policy_based_routing +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from google.protobuf import empty_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore +from .transports.base import PolicyBasedRoutingServiceTransport, DEFAULT_CLIENT_INFO +from .transports.grpc_asyncio import PolicyBasedRoutingServiceGrpcAsyncIOTransport +from .client import PolicyBasedRoutingServiceClient + + +class PolicyBasedRoutingServiceAsyncClient: + """Policy-Based Routing allows GCP customers to specify + flexibile routing policies for Layer 4 traffic traversing + through the connected service. + """ + + _client: PolicyBasedRoutingServiceClient + + DEFAULT_ENDPOINT = PolicyBasedRoutingServiceClient.DEFAULT_ENDPOINT + DEFAULT_MTLS_ENDPOINT = PolicyBasedRoutingServiceClient.DEFAULT_MTLS_ENDPOINT + + network_path = staticmethod(PolicyBasedRoutingServiceClient.network_path) + parse_network_path = staticmethod(PolicyBasedRoutingServiceClient.parse_network_path) + policy_based_route_path = staticmethod(PolicyBasedRoutingServiceClient.policy_based_route_path) + parse_policy_based_route_path = staticmethod(PolicyBasedRoutingServiceClient.parse_policy_based_route_path) + common_billing_account_path = staticmethod(PolicyBasedRoutingServiceClient.common_billing_account_path) + parse_common_billing_account_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_billing_account_path) + common_folder_path = staticmethod(PolicyBasedRoutingServiceClient.common_folder_path) + parse_common_folder_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_folder_path) + common_organization_path = staticmethod(PolicyBasedRoutingServiceClient.common_organization_path) + parse_common_organization_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_organization_path) + common_project_path = staticmethod(PolicyBasedRoutingServiceClient.common_project_path) + parse_common_project_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_project_path) + common_location_path = staticmethod(PolicyBasedRoutingServiceClient.common_location_path) + parse_common_location_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_location_path) + + @classmethod + def from_service_account_info(cls, info: dict, *args, **kwargs): + """Creates an instance of this client using the provided credentials + info. + + Args: + info (dict): The service account private key info. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + PolicyBasedRoutingServiceAsyncClient: The constructed client. + """ + return PolicyBasedRoutingServiceClient.from_service_account_info.__func__(PolicyBasedRoutingServiceAsyncClient, info, *args, **kwargs) # type: ignore + + @classmethod + def from_service_account_file(cls, filename: str, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + PolicyBasedRoutingServiceAsyncClient: The constructed client. + """ + return PolicyBasedRoutingServiceClient.from_service_account_file.__func__(PolicyBasedRoutingServiceAsyncClient, filename, *args, **kwargs) # type: ignore + + from_service_account_json = from_service_account_file + + @classmethod + def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None): + """Return the API endpoint and client cert source for mutual TLS. + + The client cert source is determined in the following order: + (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the + client cert source is None. + (2) if `client_options.client_cert_source` is provided, use the provided one; if the + default client cert source exists, use the default one; otherwise the client cert + source is None. + + The API endpoint is determined in the following order: + (1) if `client_options.api_endpoint` if provided, use the provided one. + (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the + default mTLS endpoint; if the environment variable is "never", use the default API + endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise + use the default API endpoint. + + More details can be found at https://google.aip.dev/auth/4114. + + Args: + client_options (google.api_core.client_options.ClientOptions): Custom options for the + client. Only the `api_endpoint` and `client_cert_source` properties may be used + in this method. + + Returns: + Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the + client cert source to use. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If any errors happen. + """ + return PolicyBasedRoutingServiceClient.get_mtls_endpoint_and_cert_source(client_options) # type: ignore + + @property + def transport(self) -> PolicyBasedRoutingServiceTransport: + """Returns the transport used by the client instance. + + Returns: + PolicyBasedRoutingServiceTransport: The transport used by the client instance. + """ + return self._client.transport + + get_transport_class = functools.partial(type(PolicyBasedRoutingServiceClient).get_transport_class, type(PolicyBasedRoutingServiceClient)) + + def __init__(self, *, + credentials: Optional[ga_credentials.Credentials] = None, + transport: Union[str, PolicyBasedRoutingServiceTransport] = "grpc_asyncio", + client_options: Optional[ClientOptions] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + ) -> None: + """Instantiates the policy based routing service client. + + Args: + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + transport (Union[str, ~.PolicyBasedRoutingServiceTransport]): The + transport to use. If set to None, a transport is chosen + automatically. + client_options (ClientOptions): Custom options for the client. It + won't take effect if a ``transport`` instance is provided. + (1) The ``api_endpoint`` property can be used to override the + default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT + environment variable can also be used to override the endpoint: + "always" (always use the default mTLS endpoint), "never" (always + use the default regular endpoint) and "auto" (auto switch to the + default mTLS endpoint if client certificate is present, this is + the default value). However, the ``api_endpoint`` property takes + precedence if provided. + (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable + is "true", then the ``client_cert_source`` property can be used + to provide client certificate for mutual TLS transport. If + not provided, the default SSL client certificate will be used if + present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not + set, no client certificate will be used. + + Raises: + google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport + creation failed for any reason. + """ + self._client = PolicyBasedRoutingServiceClient( + credentials=credentials, + transport=transport, + client_options=client_options, + client_info=client_info, + + ) + + async def list_policy_based_routes(self, + request: Optional[Union[policy_based_routing.ListPolicyBasedRoutesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListPolicyBasedRoutesAsyncPager: + r"""Lists PolicyBasedRoutes in a given project and + location. + + .. 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 networkconnectivity_v1 + + async def sample_list_policy_based_routes(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListPolicyBasedRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_policy_based_routes(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest, dict]]): + The request object. Request for [PolicyBasedRouting.ListPolicyBasedRoutes][] + method. + parent (:class:`str`): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers.ListPolicyBasedRoutesAsyncPager: + Response for + [PolicyBasedRouting.ListPolicyBasedRoutes][] method. + + 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([parent]) + 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.") + + request = policy_based_routing.ListPolicyBasedRoutesRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_policy_based_routes, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListPolicyBasedRoutesAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def get_policy_based_route(self, + request: Optional[Union[policy_based_routing.GetPolicyBasedRouteRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_based_routing.PolicyBasedRoute: + r"""Gets details of a single PolicyBasedRoute. + + .. 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 networkconnectivity_v1 + + async def sample_get_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetPolicyBasedRouteRequest( + name="name_value", + ) + + # Make the request + response = await client.get_policy_based_route(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetPolicyBasedRouteRequest, dict]]): + The request object. Request for [PolicyBasedRouting.GetPolicyBasedRoute][] + method. + name (:class:`str`): + Required. Name of the + PolicyBasedRoute resource to get. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.PolicyBasedRoute: + Policy Based Routes (PBR) are more + powerful routes that allows GCP + customers to route their L4 network + traffic based on not just destination + IP, but also source IP, protocol and + more. A PBR always take precedence when + it conflicts with other types of routes. + Next id: 22 + + """ + # 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([name]) + 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.") + + request = policy_based_routing.GetPolicyBasedRouteRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_policy_based_route, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def create_policy_based_route(self, + request: Optional[Union[policy_based_routing.CreatePolicyBasedRouteRequest, dict]] = None, + *, + parent: Optional[str] = None, + policy_based_route: Optional[policy_based_routing.PolicyBasedRoute] = None, + policy_based_route_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Creates a new PolicyBasedRoute in a given project and + location. + + .. 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 networkconnectivity_v1 + + async def sample_create_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() + + # Initialize request argument(s) + policy_based_route = networkconnectivity_v1.PolicyBasedRoute() + policy_based_route.next_hop_ilb_ip = "next_hop_ilb_ip_value" + policy_based_route.network = "network_value" + policy_based_route.filter.protocol_version = "IPV4" + + request = networkconnectivity_v1.CreatePolicyBasedRouteRequest( + parent="parent_value", + policy_based_route_id="policy_based_route_id_value", + policy_based_route=policy_based_route, + ) + + # Make the request + operation = client.create_policy_based_route(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.CreatePolicyBasedRouteRequest, dict]]): + The request object. Request for + [PolicyBasedRouting.CreatePolicyBasedRoute][] method. + parent (:class:`str`): + Required. The parent resource's name + of the PolicyBasedRoute. + + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + policy_based_route (:class:`google.cloud.networkconnectivity_v1.types.PolicyBasedRoute`): + Required. Initial values for a new + Policy Based Route. + + This corresponds to the ``policy_based_route`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + policy_based_route_id (:class:`str`): + Required. Unique id for the Policy + Based Route to create. + + This corresponds to the ``policy_based_route_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.PolicyBasedRoute` Policy Based Routes (PBR) are more powerful routes that allows GCP customers + to route their L4 network traffic based on not just + destination IP, but also source IP, protocol and + more. A PBR always take precedence when it conflicts + with other types of routes. Next id: 22 + + """ + # 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([parent, policy_based_route, policy_based_route_id]) + 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.") + + request = policy_based_routing.CreatePolicyBasedRouteRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if policy_based_route is not None: + request.policy_based_route = policy_based_route + if policy_based_route_id is not None: + request.policy_based_route_id = policy_based_route_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.create_policy_based_route, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + policy_based_routing.PolicyBasedRoute, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def delete_policy_based_route(self, + request: Optional[Union[policy_based_routing.DeletePolicyBasedRouteRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Deletes a single PolicyBasedRoute. + + .. 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 networkconnectivity_v1 + + async def sample_delete_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeletePolicyBasedRouteRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_policy_based_route(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.DeletePolicyBasedRouteRequest, dict]]): + The request object. Request for + [PolicyBasedRouting.DeletePolicyBasedRoute][] method. + name (:class:`str`): + Required. Name of the + PolicyBasedRoute resource to delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.") + + request = policy_based_routing.DeletePolicyBasedRouteRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.delete_policy_based_route, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def list_operations( + self, + request: Optional[operations_pb2.ListOperationsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operations_pb2.ListOperationsResponse: + r"""Lists operations that match the specified filter in the request. + + Args: + request (:class:`~.operations_pb2.ListOperationsRequest`): + The request object. Request message for + `ListOperations` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.operations_pb2.ListOperationsResponse: + Response message for ``ListOperations`` method. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.ListOperationsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.list_operations, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def get_operation( + self, + request: Optional[operations_pb2.GetOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operations_pb2.Operation: + r"""Gets the latest state of a long-running operation. + + Args: + request (:class:`~.operations_pb2.GetOperationRequest`): + The request object. Request message for + `GetOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.operations_pb2.Operation: + An ``Operation`` object. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.GetOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.get_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def delete_operation( + self, + request: Optional[operations_pb2.DeleteOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> None: + r"""Deletes a long-running operation. + + This method indicates that the client is no longer interested + in the operation result. It does not cancel the operation. + If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + + Args: + request (:class:`~.operations_pb2.DeleteOperationRequest`): + The request object. Request message for + `DeleteOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + None + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.DeleteOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.delete_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + await rpc(request, retry=retry, timeout=timeout, metadata=metadata,) + + async def cancel_operation( + self, + request: Optional[operations_pb2.CancelOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> None: + r"""Starts asynchronous cancellation on a long-running operation. + + The server makes a best effort to cancel the operation, but success + is not guaranteed. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + + Args: + request (:class:`~.operations_pb2.CancelOperationRequest`): + The request object. Request message for + `CancelOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + None + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.CancelOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.cancel_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + await rpc(request, retry=retry, timeout=timeout, metadata=metadata,) + + async def set_iam_policy( + self, + request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_pb2.Policy: + r"""Sets the IAM access control policy on the specified function. + + Replaces any existing policy. + + Args: + request (:class:`~.iam_policy_pb2.SetIamPolicyRequest`): + The request object. Request message for `SetIamPolicy` + method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.policy_pb2.Policy: + Defines an Identity and Access Management (IAM) policy. + It is used to specify access control policies for Cloud + Platform resources. + A ``Policy`` is a collection of ``bindings``. A + ``binding`` binds one or more ``members`` to a single + ``role``. Members can be user accounts, service + accounts, Google groups, and domains (such as G Suite). + A ``role`` is a named list of permissions (defined by + IAM or configured by users). A ``binding`` can + optionally specify a ``condition``, which is a logic + expression that further constrains the role binding + based on attributes about the request and/or target + resource. + + **JSON Example** + + :: + + { + "bindings": [ + { + "role": "roles/resourcemanager.organizationAdmin", + "members": [ + "user:mike@example.com", + "group:admins@example.com", + "domain:google.com", + "serviceAccount:my-project-id@appspot.gserviceaccount.com" + ] + }, + { + "role": "roles/resourcemanager.organizationViewer", + "members": ["user:eve@example.com"], + "condition": { + "title": "expirable access", + "description": "Does not grant access after Sep 2020", + "expression": "request.time < + timestamp('2020-10-01T00:00:00.000Z')", + } + } + ] + } + + **YAML Example** + + :: + + bindings: + - members: + - user:mike@example.com + - group:admins@example.com + - domain:google.com + - serviceAccount:my-project-id@appspot.gserviceaccount.com + role: roles/resourcemanager.organizationAdmin + - members: + - user:eve@example.com + role: roles/resourcemanager.organizationViewer + condition: + title: expirable access + description: Does not grant access after Sep 2020 + expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + + For a description of IAM and its features, see the `IAM + developer's + guide `__. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.SetIamPolicyRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.set_iam_policy, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def get_iam_policy( + self, + request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_pb2.Policy: + r"""Gets the IAM access control policy for a function. + + Returns an empty policy if the function exists and does not have a + policy set. + + Args: + request (:class:`~.iam_policy_pb2.GetIamPolicyRequest`): + The request object. Request message for `GetIamPolicy` + method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.policy_pb2.Policy: + Defines an Identity and Access Management (IAM) policy. + It is used to specify access control policies for Cloud + Platform resources. + A ``Policy`` is a collection of ``bindings``. A + ``binding`` binds one or more ``members`` to a single + ``role``. Members can be user accounts, service + accounts, Google groups, and domains (such as G Suite). + A ``role`` is a named list of permissions (defined by + IAM or configured by users). A ``binding`` can + optionally specify a ``condition``, which is a logic + expression that further constrains the role binding + based on attributes about the request and/or target + resource. + + **JSON Example** + + :: + + { + "bindings": [ + { + "role": "roles/resourcemanager.organizationAdmin", + "members": [ + "user:mike@example.com", + "group:admins@example.com", + "domain:google.com", + "serviceAccount:my-project-id@appspot.gserviceaccount.com" + ] + }, + { + "role": "roles/resourcemanager.organizationViewer", + "members": ["user:eve@example.com"], + "condition": { + "title": "expirable access", + "description": "Does not grant access after Sep 2020", + "expression": "request.time < + timestamp('2020-10-01T00:00:00.000Z')", + } + } + ] + } + + **YAML Example** + + :: + + bindings: + - members: + - user:mike@example.com + - group:admins@example.com + - domain:google.com + - serviceAccount:my-project-id@appspot.gserviceaccount.com + role: roles/resourcemanager.organizationAdmin + - members: + - user:eve@example.com + role: roles/resourcemanager.organizationViewer + condition: + title: expirable access + description: Does not grant access after Sep 2020 + expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + + For a description of IAM and its features, see the `IAM + developer's + guide `__. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.GetIamPolicyRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.get_iam_policy, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def test_iam_permissions( + self, + request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> iam_policy_pb2.TestIamPermissionsResponse: + r"""Tests the specified IAM permissions against the IAM access control + policy for a function. + + If the function does not exist, this will return an empty set + of permissions, not a NOT_FOUND error. + + Args: + request (:class:`~.iam_policy_pb2.TestIamPermissionsRequest`): + The request object. Request message for + `TestIamPermissions` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.iam_policy_pb2.TestIamPermissionsResponse: + Response message for ``TestIamPermissions`` method. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.TestIamPermissionsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.test_iam_permissions, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def get_location( + self, + request: Optional[locations_pb2.GetLocationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> locations_pb2.Location: + r"""Gets information about a location. + + Args: + request (:class:`~.location_pb2.GetLocationRequest`): + The request object. Request message for + `GetLocation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.location_pb2.Location: + Location object. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = locations_pb2.GetLocationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.get_location, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def list_locations( + self, + request: Optional[locations_pb2.ListLocationsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> locations_pb2.ListLocationsResponse: + r"""Lists information about the supported locations for this service. + + Args: + request (:class:`~.location_pb2.ListLocationsRequest`): + The request object. Request message for + `ListLocations` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.location_pb2.ListLocationsResponse: + Response message for ``ListLocations`` method. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = locations_pb2.ListLocationsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._client._transport.list_locations, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + async def __aenter__(self) -> "PolicyBasedRoutingServiceAsyncClient": + return self + + async def __aexit__(self, exc_type, exc, tb): + await self.transport.close() + +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) + + +__all__ = ( + "PolicyBasedRoutingServiceAsyncClient", +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/client.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/client.py new file mode 100644 index 000000000000..3747078cbe5c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/client.py @@ -0,0 +1,1503 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from collections import OrderedDict +import os +import re +from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast + +from google.cloud.networkconnectivity_v1 import gapic_version as package_version + +from google.api_core import client_options as client_options_lib +from google.api_core import exceptions as core_exceptions +from google.api_core import gapic_v1 +from google.api_core import retry as retries +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport import mtls # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore +from google.auth.exceptions import MutualTLSChannelError # type: ignore +from google.oauth2 import service_account # type: ignore + +try: + OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] +except AttributeError: # pragma: NO COVER + OptionalRetry = Union[retries.Retry, object] # type: ignore + +from google.api_core import operation # type: ignore +from google.api_core import operation_async # type: ignore +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import pagers +from google.cloud.networkconnectivity_v1.types import common +from google.cloud.networkconnectivity_v1.types import policy_based_routing +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from google.protobuf import empty_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore +from .transports.base import PolicyBasedRoutingServiceTransport, DEFAULT_CLIENT_INFO +from .transports.grpc import PolicyBasedRoutingServiceGrpcTransport +from .transports.grpc_asyncio import PolicyBasedRoutingServiceGrpcAsyncIOTransport + + +class PolicyBasedRoutingServiceClientMeta(type): + """Metaclass for the PolicyBasedRoutingService client. + + This provides class-level methods for building and retrieving + support objects (e.g. transport) without polluting the client instance + objects. + """ + _transport_registry = OrderedDict() # type: Dict[str, Type[PolicyBasedRoutingServiceTransport]] + _transport_registry["grpc"] = PolicyBasedRoutingServiceGrpcTransport + _transport_registry["grpc_asyncio"] = PolicyBasedRoutingServiceGrpcAsyncIOTransport + + def get_transport_class(cls, + label: Optional[str] = None, + ) -> Type[PolicyBasedRoutingServiceTransport]: + """Returns an appropriate transport class. + + Args: + label: The name of the desired transport. If none is + provided, then the first transport in the registry is used. + + Returns: + The transport class to use. + """ + # If a specific transport is requested, return that one. + if label: + return cls._transport_registry[label] + + # No transport is requested; return the default (that is, the first one + # in the dictionary). + return next(iter(cls._transport_registry.values())) + + +class PolicyBasedRoutingServiceClient(metaclass=PolicyBasedRoutingServiceClientMeta): + """Policy-Based Routing allows GCP customers to specify + flexibile routing policies for Layer 4 traffic traversing + through the connected service. + """ + + @staticmethod + def _get_default_mtls_endpoint(api_endpoint): + """Converts api endpoint to mTLS endpoint. + + Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to + "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively. + Args: + api_endpoint (Optional[str]): the api endpoint to convert. + Returns: + str: converted mTLS api endpoint. + """ + if not api_endpoint: + return api_endpoint + + mtls_endpoint_re = re.compile( + r"(?P[^.]+)(?P\.mtls)?(?P\.sandbox)?(?P\.googleapis\.com)?" + ) + + m = mtls_endpoint_re.match(api_endpoint) + name, mtls, sandbox, googledomain = m.groups() + if mtls or not googledomain: + return api_endpoint + + if sandbox: + return api_endpoint.replace( + "sandbox.googleapis.com", "mtls.sandbox.googleapis.com" + ) + + return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com") + + DEFAULT_ENDPOINT = "networkconnectivity.googleapis.com" + DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__( # type: ignore + DEFAULT_ENDPOINT + ) + + @classmethod + def from_service_account_info(cls, info: dict, *args, **kwargs): + """Creates an instance of this client using the provided credentials + info. + + Args: + info (dict): The service account private key info. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + PolicyBasedRoutingServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_info(info) + kwargs["credentials"] = credentials + return cls(*args, **kwargs) + + @classmethod + def from_service_account_file(cls, filename: str, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + PolicyBasedRoutingServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs["credentials"] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @property + def transport(self) -> PolicyBasedRoutingServiceTransport: + """Returns the transport used by the client instance. + + Returns: + PolicyBasedRoutingServiceTransport: The transport used by the client + instance. + """ + return self._transport + + @staticmethod + def network_path(project: str,resource_id: str,) -> str: + """Returns a fully-qualified network string.""" + return "projects/{project}/global/networks/{resource_id}".format(project=project, resource_id=resource_id, ) + + @staticmethod + def parse_network_path(path: str) -> Dict[str,str]: + """Parses a network path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/global/networks/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def policy_based_route_path(project: str,policy_based_route: str,) -> str: + """Returns a fully-qualified policy_based_route string.""" + return "projects/{project}/locations/global/PolicyBasedRoutes/{policy_based_route}".format(project=project, policy_based_route=policy_based_route, ) + + @staticmethod + def parse_policy_based_route_path(path: str) -> Dict[str,str]: + """Parses a policy_based_route path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/global/PolicyBasedRoutes/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_billing_account_path(billing_account: str, ) -> str: + """Returns a fully-qualified billing_account string.""" + return "billingAccounts/{billing_account}".format(billing_account=billing_account, ) + + @staticmethod + def parse_common_billing_account_path(path: str) -> Dict[str,str]: + """Parse a billing_account path into its component segments.""" + m = re.match(r"^billingAccounts/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_folder_path(folder: str, ) -> str: + """Returns a fully-qualified folder string.""" + return "folders/{folder}".format(folder=folder, ) + + @staticmethod + def parse_common_folder_path(path: str) -> Dict[str,str]: + """Parse a folder path into its component segments.""" + m = re.match(r"^folders/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_organization_path(organization: str, ) -> str: + """Returns a fully-qualified organization string.""" + return "organizations/{organization}".format(organization=organization, ) + + @staticmethod + def parse_common_organization_path(path: str) -> Dict[str,str]: + """Parse a organization path into its component segments.""" + m = re.match(r"^organizations/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_project_path(project: str, ) -> str: + """Returns a fully-qualified project string.""" + return "projects/{project}".format(project=project, ) + + @staticmethod + def parse_common_project_path(path: str) -> Dict[str,str]: + """Parse a project path into its component segments.""" + m = re.match(r"^projects/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_location_path(project: str, location: str, ) -> str: + """Returns a fully-qualified location string.""" + return "projects/{project}/locations/{location}".format(project=project, location=location, ) + + @staticmethod + def parse_common_location_path(path: str) -> Dict[str,str]: + """Parse a location path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)$", path) + return m.groupdict() if m else {} + + @classmethod + def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None): + """Return the API endpoint and client cert source for mutual TLS. + + The client cert source is determined in the following order: + (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the + client cert source is None. + (2) if `client_options.client_cert_source` is provided, use the provided one; if the + default client cert source exists, use the default one; otherwise the client cert + source is None. + + The API endpoint is determined in the following order: + (1) if `client_options.api_endpoint` if provided, use the provided one. + (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the + default mTLS endpoint; if the environment variable is "never", use the default API + endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise + use the default API endpoint. + + More details can be found at https://google.aip.dev/auth/4114. + + Args: + client_options (google.api_core.client_options.ClientOptions): Custom options for the + client. Only the `api_endpoint` and `client_cert_source` properties may be used + in this method. + + Returns: + Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the + client cert source to use. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If any errors happen. + """ + if client_options is None: + client_options = client_options_lib.ClientOptions() + use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false") + use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto") + if use_client_cert not in ("true", "false"): + raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`") + if use_mtls_endpoint not in ("auto", "never", "always"): + raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`") + + # Figure out the client cert source to use. + client_cert_source = None + if use_client_cert == "true": + if client_options.client_cert_source: + client_cert_source = client_options.client_cert_source + elif mtls.has_default_client_cert_source(): + client_cert_source = mtls.default_client_cert_source() + + # Figure out which api endpoint to use. + if client_options.api_endpoint is not None: + api_endpoint = client_options.api_endpoint + elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source): + api_endpoint = cls.DEFAULT_MTLS_ENDPOINT + else: + api_endpoint = cls.DEFAULT_ENDPOINT + + return api_endpoint, client_cert_source + + def __init__(self, *, + credentials: Optional[ga_credentials.Credentials] = None, + transport: Optional[Union[str, PolicyBasedRoutingServiceTransport]] = None, + client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + ) -> None: + """Instantiates the policy based routing service client. + + Args: + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + transport (Union[str, PolicyBasedRoutingServiceTransport]): The + transport to use. If set to None, a transport is chosen + automatically. + client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the + client. It won't take effect if a ``transport`` instance is provided. + (1) The ``api_endpoint`` property can be used to override the + default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT + environment variable can also be used to override the endpoint: + "always" (always use the default mTLS endpoint), "never" (always + use the default regular endpoint) and "auto" (auto switch to the + default mTLS endpoint if client certificate is present, this is + the default value). However, the ``api_endpoint`` property takes + precedence if provided. + (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable + is "true", then the ``client_cert_source`` property can be used + to provide client certificate for mutual TLS transport. If + not provided, the default SSL client certificate will be used if + present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not + set, no client certificate will be used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport + creation failed for any reason. + """ + if isinstance(client_options, dict): + client_options = client_options_lib.from_dict(client_options) + if client_options is None: + client_options = client_options_lib.ClientOptions() + client_options = cast(client_options_lib.ClientOptions, client_options) + + api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options) + + api_key_value = getattr(client_options, "api_key", None) + if api_key_value and credentials: + raise ValueError("client_options.api_key and credentials are mutually exclusive") + + # Save or instantiate the transport. + # Ordinarily, we provide the transport, but allowing a custom transport + # instance provides an extensibility point for unusual situations. + if isinstance(transport, PolicyBasedRoutingServiceTransport): + # transport is a PolicyBasedRoutingServiceTransport instance. + if credentials or client_options.credentials_file or api_key_value: + raise ValueError("When providing a transport instance, " + "provide its credentials directly.") + if client_options.scopes: + raise ValueError( + "When providing a transport instance, provide its scopes " + "directly." + ) + self._transport = transport + else: + import google.auth._default # type: ignore + + if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"): + credentials = google.auth._default.get_api_key_credentials(api_key_value) + + Transport = type(self).get_transport_class(transport) + self._transport = Transport( + credentials=credentials, + credentials_file=client_options.credentials_file, + host=api_endpoint, + scopes=client_options.scopes, + client_cert_source_for_mtls=client_cert_source_func, + quota_project_id=client_options.quota_project_id, + client_info=client_info, + always_use_jwt_access=True, + api_audience=client_options.api_audience, + ) + + def list_policy_based_routes(self, + request: Optional[Union[policy_based_routing.ListPolicyBasedRoutesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListPolicyBasedRoutesPager: + r"""Lists PolicyBasedRoutes in a given project and + location. + + .. 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 networkconnectivity_v1 + + def sample_list_policy_based_routes(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListPolicyBasedRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_policy_based_routes(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest, dict]): + The request object. Request for [PolicyBasedRouting.ListPolicyBasedRoutes][] + method. + parent (str): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers.ListPolicyBasedRoutesPager: + Response for + [PolicyBasedRouting.ListPolicyBasedRoutes][] method. + + 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([parent]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a policy_based_routing.ListPolicyBasedRoutesRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, policy_based_routing.ListPolicyBasedRoutesRequest): + request = policy_based_routing.ListPolicyBasedRoutesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_policy_based_routes] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # 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.ListPolicyBasedRoutesPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_policy_based_route(self, + request: Optional[Union[policy_based_routing.GetPolicyBasedRouteRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_based_routing.PolicyBasedRoute: + r"""Gets details of a single PolicyBasedRoute. + + .. 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 networkconnectivity_v1 + + def sample_get_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetPolicyBasedRouteRequest( + name="name_value", + ) + + # Make the request + response = client.get_policy_based_route(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.GetPolicyBasedRouteRequest, dict]): + The request object. Request for [PolicyBasedRouting.GetPolicyBasedRoute][] + method. + name (str): + Required. Name of the + PolicyBasedRoute resource to get. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.PolicyBasedRoute: + Policy Based Routes (PBR) are more + powerful routes that allows GCP + customers to route their L4 network + traffic based on not just destination + IP, but also source IP, protocol and + more. A PBR always take precedence when + it conflicts with other types of routes. + Next id: 22 + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a policy_based_routing.GetPolicyBasedRouteRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, policy_based_routing.GetPolicyBasedRouteRequest): + request = policy_based_routing.GetPolicyBasedRouteRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_policy_based_route] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def create_policy_based_route(self, + request: Optional[Union[policy_based_routing.CreatePolicyBasedRouteRequest, dict]] = None, + *, + parent: Optional[str] = None, + policy_based_route: Optional[policy_based_routing.PolicyBasedRoute] = None, + policy_based_route_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Creates a new PolicyBasedRoute in a given project and + location. + + .. 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 networkconnectivity_v1 + + def sample_create_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() + + # Initialize request argument(s) + policy_based_route = networkconnectivity_v1.PolicyBasedRoute() + policy_based_route.next_hop_ilb_ip = "next_hop_ilb_ip_value" + policy_based_route.network = "network_value" + policy_based_route.filter.protocol_version = "IPV4" + + request = networkconnectivity_v1.CreatePolicyBasedRouteRequest( + parent="parent_value", + policy_based_route_id="policy_based_route_id_value", + policy_based_route=policy_based_route, + ) + + # Make the request + operation = client.create_policy_based_route(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.CreatePolicyBasedRouteRequest, dict]): + The request object. Request for + [PolicyBasedRouting.CreatePolicyBasedRoute][] method. + parent (str): + Required. The parent resource's name + of the PolicyBasedRoute. + + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + policy_based_route (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute): + Required. Initial values for a new + Policy Based Route. + + This corresponds to the ``policy_based_route`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + policy_based_route_id (str): + Required. Unique id for the Policy + Based Route to create. + + This corresponds to the ``policy_based_route_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.PolicyBasedRoute` Policy Based Routes (PBR) are more powerful routes that allows GCP customers + to route their L4 network traffic based on not just + destination IP, but also source IP, protocol and + more. A PBR always take precedence when it conflicts + with other types of routes. Next id: 22 + + """ + # 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([parent, policy_based_route, policy_based_route_id]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a policy_based_routing.CreatePolicyBasedRouteRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, policy_based_routing.CreatePolicyBasedRouteRequest): + request = policy_based_routing.CreatePolicyBasedRouteRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if policy_based_route is not None: + request.policy_based_route = policy_based_route + if policy_based_route_id is not None: + request.policy_based_route_id = policy_based_route_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.create_policy_based_route] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + policy_based_routing.PolicyBasedRoute, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def delete_policy_based_route(self, + request: Optional[Union[policy_based_routing.DeletePolicyBasedRouteRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Deletes a single PolicyBasedRoute. + + .. 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 networkconnectivity_v1 + + def sample_delete_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeletePolicyBasedRouteRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_policy_based_route(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.DeletePolicyBasedRouteRequest, dict]): + The request object. Request for + [PolicyBasedRouting.DeletePolicyBasedRoute][] method. + name (str): + Required. Name of the + PolicyBasedRoute resource to delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a policy_based_routing.DeletePolicyBasedRouteRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, policy_based_routing.DeletePolicyBasedRouteRequest): + request = policy_based_routing.DeletePolicyBasedRouteRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.delete_policy_based_route] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def __enter__(self) -> "PolicyBasedRoutingServiceClient": + return self + + def __exit__(self, type, value, traceback): + """Releases underlying transport's resources. + + .. warning:: + ONLY use as a context manager if the transport is NOT shared + with other clients! Exiting the with block will CLOSE the transport + and may cause errors in other clients! + """ + self.transport.close() + + def list_operations( + self, + request: Optional[operations_pb2.ListOperationsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operations_pb2.ListOperationsResponse: + r"""Lists operations that match the specified filter in the request. + + Args: + request (:class:`~.operations_pb2.ListOperationsRequest`): + The request object. Request message for + `ListOperations` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.operations_pb2.ListOperationsResponse: + Response message for ``ListOperations`` method. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.ListOperationsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.list_operations, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def get_operation( + self, + request: Optional[operations_pb2.GetOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operations_pb2.Operation: + r"""Gets the latest state of a long-running operation. + + Args: + request (:class:`~.operations_pb2.GetOperationRequest`): + The request object. Request message for + `GetOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.operations_pb2.Operation: + An ``Operation`` object. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.GetOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.get_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def delete_operation( + self, + request: Optional[operations_pb2.DeleteOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> None: + r"""Deletes a long-running operation. + + This method indicates that the client is no longer interested + in the operation result. It does not cancel the operation. + If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + + Args: + request (:class:`~.operations_pb2.DeleteOperationRequest`): + The request object. Request message for + `DeleteOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + None + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.DeleteOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.delete_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + rpc(request, retry=retry, timeout=timeout, metadata=metadata,) + + def cancel_operation( + self, + request: Optional[operations_pb2.CancelOperationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> None: + r"""Starts asynchronous cancellation on a long-running operation. + + The server makes a best effort to cancel the operation, but success + is not guaranteed. If the server doesn't support this method, it returns + `google.rpc.Code.UNIMPLEMENTED`. + + Args: + request (:class:`~.operations_pb2.CancelOperationRequest`): + The request object. Request message for + `CancelOperation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + None + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = operations_pb2.CancelOperationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.cancel_operation, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + rpc(request, retry=retry, timeout=timeout, metadata=metadata,) + + def set_iam_policy( + self, + request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_pb2.Policy: + r"""Sets the IAM access control policy on the specified function. + + Replaces any existing policy. + + Args: + request (:class:`~.iam_policy_pb2.SetIamPolicyRequest`): + The request object. Request message for `SetIamPolicy` + method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.policy_pb2.Policy: + Defines an Identity and Access Management (IAM) policy. + It is used to specify access control policies for Cloud + Platform resources. + A ``Policy`` is a collection of ``bindings``. A + ``binding`` binds one or more ``members`` to a single + ``role``. Members can be user accounts, service + accounts, Google groups, and domains (such as G Suite). + A ``role`` is a named list of permissions (defined by + IAM or configured by users). A ``binding`` can + optionally specify a ``condition``, which is a logic + expression that further constrains the role binding + based on attributes about the request and/or target + resource. + + **JSON Example** + + :: + + { + "bindings": [ + { + "role": "roles/resourcemanager.organizationAdmin", + "members": [ + "user:mike@example.com", + "group:admins@example.com", + "domain:google.com", + "serviceAccount:my-project-id@appspot.gserviceaccount.com" + ] + }, + { + "role": "roles/resourcemanager.organizationViewer", + "members": ["user:eve@example.com"], + "condition": { + "title": "expirable access", + "description": "Does not grant access after Sep 2020", + "expression": "request.time < + timestamp('2020-10-01T00:00:00.000Z')", + } + } + ] + } + + **YAML Example** + + :: + + bindings: + - members: + - user:mike@example.com + - group:admins@example.com + - domain:google.com + - serviceAccount:my-project-id@appspot.gserviceaccount.com + role: roles/resourcemanager.organizationAdmin + - members: + - user:eve@example.com + role: roles/resourcemanager.organizationViewer + condition: + title: expirable access + description: Does not grant access after Sep 2020 + expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + + For a description of IAM and its features, see the `IAM + developer's + guide `__. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.SetIamPolicyRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.set_iam_policy, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def get_iam_policy( + self, + request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> policy_pb2.Policy: + r"""Gets the IAM access control policy for a function. + + Returns an empty policy if the function exists and does not have a + policy set. + + Args: + request (:class:`~.iam_policy_pb2.GetIamPolicyRequest`): + The request object. Request message for `GetIamPolicy` + method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.policy_pb2.Policy: + Defines an Identity and Access Management (IAM) policy. + It is used to specify access control policies for Cloud + Platform resources. + A ``Policy`` is a collection of ``bindings``. A + ``binding`` binds one or more ``members`` to a single + ``role``. Members can be user accounts, service + accounts, Google groups, and domains (such as G Suite). + A ``role`` is a named list of permissions (defined by + IAM or configured by users). A ``binding`` can + optionally specify a ``condition``, which is a logic + expression that further constrains the role binding + based on attributes about the request and/or target + resource. + + **JSON Example** + + :: + + { + "bindings": [ + { + "role": "roles/resourcemanager.organizationAdmin", + "members": [ + "user:mike@example.com", + "group:admins@example.com", + "domain:google.com", + "serviceAccount:my-project-id@appspot.gserviceaccount.com" + ] + }, + { + "role": "roles/resourcemanager.organizationViewer", + "members": ["user:eve@example.com"], + "condition": { + "title": "expirable access", + "description": "Does not grant access after Sep 2020", + "expression": "request.time < + timestamp('2020-10-01T00:00:00.000Z')", + } + } + ] + } + + **YAML Example** + + :: + + bindings: + - members: + - user:mike@example.com + - group:admins@example.com + - domain:google.com + - serviceAccount:my-project-id@appspot.gserviceaccount.com + role: roles/resourcemanager.organizationAdmin + - members: + - user:eve@example.com + role: roles/resourcemanager.organizationViewer + condition: + title: expirable access + description: Does not grant access after Sep 2020 + expression: request.time < timestamp('2020-10-01T00:00:00.000Z') + + For a description of IAM and its features, see the `IAM + developer's + guide `__. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.GetIamPolicyRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.get_iam_policy, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def test_iam_permissions( + self, + request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> iam_policy_pb2.TestIamPermissionsResponse: + r"""Tests the specified IAM permissions against the IAM access control + policy for a function. + + If the function does not exist, this will return an empty set + of permissions, not a NOT_FOUND error. + + Args: + request (:class:`~.iam_policy_pb2.TestIamPermissionsRequest`): + The request object. Request message for + `TestIamPermissions` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.iam_policy_pb2.TestIamPermissionsResponse: + Response message for ``TestIamPermissions`` method. + """ + # Create or coerce a protobuf request object. + + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = iam_policy_pb2.TestIamPermissionsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.test_iam_permissions, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("resource", request.resource),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def get_location( + self, + request: Optional[locations_pb2.GetLocationRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> locations_pb2.Location: + r"""Gets information about a location. + + Args: + request (:class:`~.location_pb2.GetLocationRequest`): + The request object. Request message for + `GetLocation` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.location_pb2.Location: + Location object. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = locations_pb2.GetLocationRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.get_location, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + def list_locations( + self, + request: Optional[locations_pb2.ListLocationsRequest] = None, + *, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> locations_pb2.ListLocationsResponse: + r"""Lists information about the supported locations for this service. + + Args: + request (:class:`~.location_pb2.ListLocationsRequest`): + The request object. Request message for + `ListLocations` method. + 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, str]]): Strings which should be + sent along with the request as metadata. + Returns: + ~.location_pb2.ListLocationsResponse: + Response message for ``ListLocations`` method. + """ + # Create or coerce a protobuf request object. + # The request isn't a proto-plus wrapped type, + # so it must be constructed via keyword expansion. + if isinstance(request, dict): + request = locations_pb2.ListLocationsRequest(**request) + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method.wrap_method( + self._transport.list_locations, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata( + (("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, retry=retry, timeout=timeout, metadata=metadata,) + + # Done; return the response. + return response + + +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) + + +__all__ = ( + "PolicyBasedRoutingServiceClient", +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/pagers.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/pagers.py new file mode 100644 index 000000000000..93c9dc64f572 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/pagers.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator + +from google.cloud.networkconnectivity_v1.types import policy_based_routing + + +class ListPolicyBasedRoutesPager: + """A pager for iterating through ``list_policy_based_routes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse` object, and + provides an ``__iter__`` method to iterate through its + ``policy_based_routes`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListPolicyBasedRoutes`` requests and continue to iterate + through the ``policy_based_routes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse` + 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[..., policy_based_routing.ListPolicyBasedRoutesResponse], + request: policy_based_routing.ListPolicyBasedRoutesRequest, + response: policy_based_routing.ListPolicyBasedRoutesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = policy_based_routing.ListPolicyBasedRoutesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[policy_based_routing.ListPolicyBasedRoutesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[policy_based_routing.PolicyBasedRoute]: + for page in self.pages: + yield from page.policy_based_routes + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListPolicyBasedRoutesAsyncPager: + """A pager for iterating through ``list_policy_based_routes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``policy_based_routes`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListPolicyBasedRoutes`` requests and continue to iterate + through the ``policy_based_routes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse` + 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[..., Awaitable[policy_based_routing.ListPolicyBasedRoutesResponse]], + request: policy_based_routing.ListPolicyBasedRoutesRequest, + response: policy_based_routing.ListPolicyBasedRoutesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = policy_based_routing.ListPolicyBasedRoutesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[policy_based_routing.ListPolicyBasedRoutesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + def __aiter__(self) -> AsyncIterator[policy_based_routing.PolicyBasedRoute]: + async def async_generator(): + async for page in self.pages: + for response in page.policy_based_routes: + yield response + + return async_generator() + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/__init__.py new file mode 100644 index 000000000000..2f2f03b199e4 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/__init__.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from collections import OrderedDict +from typing import Dict, Type + +from .base import PolicyBasedRoutingServiceTransport +from .grpc import PolicyBasedRoutingServiceGrpcTransport +from .grpc_asyncio import PolicyBasedRoutingServiceGrpcAsyncIOTransport + + +# Compile a registry of transports. +_transport_registry = OrderedDict() # type: Dict[str, Type[PolicyBasedRoutingServiceTransport]] +_transport_registry['grpc'] = PolicyBasedRoutingServiceGrpcTransport +_transport_registry['grpc_asyncio'] = PolicyBasedRoutingServiceGrpcAsyncIOTransport + +__all__ = ( + 'PolicyBasedRoutingServiceTransport', + 'PolicyBasedRoutingServiceGrpcTransport', + 'PolicyBasedRoutingServiceGrpcAsyncIOTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/base.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/base.py new file mode 100644 index 000000000000..e3b9e315d89b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/base.py @@ -0,0 +1,282 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import abc +from typing import Awaitable, Callable, Dict, Optional, Sequence, Union + +from google.cloud.networkconnectivity_v1 import gapic_version as package_version + +import google.auth # type: ignore +import google.api_core +from google.api_core import exceptions as core_exceptions +from google.api_core import gapic_v1 +from google.api_core import retry as retries +from google.api_core import operations_v1 +from google.auth import credentials as ga_credentials # type: ignore +from google.oauth2 import service_account # type: ignore + +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.types import policy_based_routing +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore + +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) + + +class PolicyBasedRoutingServiceTransport(abc.ABC): + """Abstract transport class for PolicyBasedRoutingService.""" + + AUTH_SCOPES = ( + 'https://www.googleapis.com/auth/cloud-platform', + ) + + DEFAULT_HOST: str = 'networkconnectivity.googleapis.com' + def __init__( + self, *, + host: str = DEFAULT_HOST, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + quota_project_id: Optional[str] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + always_use_jwt_access: Optional[bool] = False, + api_audience: Optional[str] = None, + **kwargs, + ) -> None: + """Instantiate the transport. + + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is mutually exclusive with credentials. + scopes (Optional[Sequence[str]]): A list of scopes. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + """ + + scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} + + # Save the scopes. + self._scopes = scopes + + # If no credentials are provided, then determine the appropriate + # defaults. + if credentials and credentials_file: + raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive") + + if credentials_file is not None: + credentials, _ = google.auth.load_credentials_from_file( + credentials_file, + **scopes_kwargs, + quota_project_id=quota_project_id + ) + elif credentials is None: + credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id) + # Don't apply audience if the credentials file passed from user. + if hasattr(credentials, "with_gdch_audience"): + credentials = credentials.with_gdch_audience(api_audience if api_audience else host) + + # If the credentials are service account credentials, then always try to use self signed JWT. + if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"): + credentials = credentials.with_always_use_jwt_access(True) + + # Save the credentials. + self._credentials = credentials + + # Save the hostname. Default to port 443 (HTTPS) if none is specified. + if ':' not in host: + host += ':443' + self._host = host + + def _prep_wrapped_messages(self, client_info): + # Precompute the wrapped methods. + self._wrapped_methods = { + self.list_policy_based_routes: gapic_v1.method.wrap_method( + self.list_policy_based_routes, + default_timeout=None, + client_info=client_info, + ), + self.get_policy_based_route: gapic_v1.method.wrap_method( + self.get_policy_based_route, + default_timeout=None, + client_info=client_info, + ), + self.create_policy_based_route: gapic_v1.method.wrap_method( + self.create_policy_based_route, + default_timeout=60.0, + client_info=client_info, + ), + self.delete_policy_based_route: gapic_v1.method.wrap_method( + self.delete_policy_based_route, + default_timeout=60.0, + client_info=client_info, + ), + } + + def close(self): + """Closes resources associated with the transport. + + .. warning:: + Only call this method if the transport is NOT shared + with other clients - this may cause errors in other clients! + """ + raise NotImplementedError() + + @property + def operations_client(self): + """Return the client designed to process long-running operations.""" + raise NotImplementedError() + + @property + def list_policy_based_routes(self) -> Callable[ + [policy_based_routing.ListPolicyBasedRoutesRequest], + Union[ + policy_based_routing.ListPolicyBasedRoutesResponse, + Awaitable[policy_based_routing.ListPolicyBasedRoutesResponse] + ]]: + raise NotImplementedError() + + @property + def get_policy_based_route(self) -> Callable[ + [policy_based_routing.GetPolicyBasedRouteRequest], + Union[ + policy_based_routing.PolicyBasedRoute, + Awaitable[policy_based_routing.PolicyBasedRoute] + ]]: + raise NotImplementedError() + + @property + def create_policy_based_route(self) -> Callable[ + [policy_based_routing.CreatePolicyBasedRouteRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def delete_policy_based_route(self) -> Callable[ + [policy_based_routing.DeletePolicyBasedRouteRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def list_operations( + self, + ) -> Callable[ + [operations_pb2.ListOperationsRequest], + Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]], + ]: + raise NotImplementedError() + + @property + def get_operation( + self, + ) -> Callable[ + [operations_pb2.GetOperationRequest], + Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]], + ]: + raise NotImplementedError() + + @property + def cancel_operation( + self, + ) -> Callable[ + [operations_pb2.CancelOperationRequest], + None, + ]: + raise NotImplementedError() + + @property + def delete_operation( + self, + ) -> Callable[ + [operations_pb2.DeleteOperationRequest], + None, + ]: + raise NotImplementedError() + + @property + def set_iam_policy( + self, + ) -> Callable[ + [iam_policy_pb2.SetIamPolicyRequest], + Union[policy_pb2.Policy, Awaitable[policy_pb2.Policy]], + ]: + raise NotImplementedError() + + @property + def get_iam_policy( + self, + ) -> Callable[ + [iam_policy_pb2.GetIamPolicyRequest], + Union[policy_pb2.Policy, Awaitable[policy_pb2.Policy]], + ]: + raise NotImplementedError() + + @property + def test_iam_permissions( + self, + ) -> Callable[ + [iam_policy_pb2.TestIamPermissionsRequest], + Union[ + iam_policy_pb2.TestIamPermissionsResponse, + Awaitable[iam_policy_pb2.TestIamPermissionsResponse], + ], + ]: + raise NotImplementedError() + + @property + def get_location(self, + ) -> Callable[ + [locations_pb2.GetLocationRequest], + Union[locations_pb2.Location, Awaitable[locations_pb2.Location]], + ]: + raise NotImplementedError() + + @property + def list_locations(self, + ) -> Callable[ + [locations_pb2.ListLocationsRequest], + Union[locations_pb2.ListLocationsResponse, Awaitable[locations_pb2.ListLocationsResponse]], + ]: + raise NotImplementedError() + + @property + def kind(self) -> str: + raise NotImplementedError() + + +__all__ = ( + 'PolicyBasedRoutingServiceTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc.py new file mode 100644 index 000000000000..314004cd619b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc.py @@ -0,0 +1,555 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import warnings +from typing import Callable, Dict, Optional, Sequence, Tuple, Union + +from google.api_core import grpc_helpers +from google.api_core import operations_v1 +from google.api_core import gapic_v1 +import google.auth # type: ignore +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore + +import grpc # type: ignore + +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.types import policy_based_routing +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from .base import PolicyBasedRoutingServiceTransport, DEFAULT_CLIENT_INFO + + +class PolicyBasedRoutingServiceGrpcTransport(PolicyBasedRoutingServiceTransport): + """gRPC backend transport for PolicyBasedRoutingService. + + Policy-Based Routing allows GCP customers to specify + flexibile routing policies for Layer 4 traffic traversing + through the connected service. + + This class defines the same methods as the primary client, so the + primary client can load the underlying transport implementation + and call it. + + It sends protocol buffers over the wire using gRPC (which is built on + top of HTTP/2); the ``grpcio`` package must be installed. + """ + _stubs: Dict[str, Callable] + + def __init__(self, *, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[grpc.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + always_use_jwt_access: Optional[bool] = False, + api_audience: Optional[str] = None, + ) -> None: + """Instantiate the transport. + + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is ignored if ``channel`` is provided. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional(Sequence[str])): A list of scopes. This argument is + ignored if ``channel`` is provided. + channel (Optional[grpc.Channel]): A ``Channel`` instance through + which to make calls. + api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. + If provided, it overrides the ``host`` argument and tries to create + a mutual TLS channel with client SSL credentials from + ``client_cert_source`` or application default SSL credentials. + client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): + Deprecated. A callback to provide client SSL certificate bytes and + private key bytes, both in PEM format. It is ignored if + ``api_mtls_endpoint`` is None. + ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials + for the grpc channel. It is ignored if ``channel`` is provided. + client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): + A callback to provide client certificate bytes and private key bytes, + both in PEM format. It is used to configure a mutual TLS channel. It is + ignored if ``channel`` or ``ssl_channel_credentials`` is provided. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport + creation failed for any reason. + google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` + and ``credentials_file`` are passed. + """ + self._grpc_channel = None + self._ssl_channel_credentials = ssl_channel_credentials + self._stubs: Dict[str, Callable] = {} + self._operations_client: Optional[operations_v1.OperationsClient] = None + + if api_mtls_endpoint: + warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) + if client_cert_source: + warnings.warn("client_cert_source is deprecated", DeprecationWarning) + + if channel: + # Ignore credentials if a channel was passed. + credentials = False + # If a channel was explicitly provided, set it. + self._grpc_channel = channel + self._ssl_channel_credentials = None + + else: + if api_mtls_endpoint: + host = api_mtls_endpoint + + # Create SSL credentials with client_cert_source or application + # default SSL credentials. + if client_cert_source: + cert, key = client_cert_source() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + else: + self._ssl_channel_credentials = SslCredentials().ssl_credentials + + else: + if client_cert_source_for_mtls and not ssl_channel_credentials: + cert, key = client_cert_source_for_mtls() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + + # The base transport sets the host, credentials and scopes + super().__init__( + host=host, + credentials=credentials, + credentials_file=credentials_file, + scopes=scopes, + quota_project_id=quota_project_id, + client_info=client_info, + always_use_jwt_access=always_use_jwt_access, + api_audience=api_audience, + ) + + if not self._grpc_channel: + self._grpc_channel = type(self).create_channel( + self._host, + # use the credentials which are saved + credentials=self._credentials, + # Set ``credentials_file`` to ``None`` here as + # the credentials that we saved earlier should be used. + credentials_file=None, + scopes=self._scopes, + ssl_credentials=self._ssl_channel_credentials, + quota_project_id=quota_project_id, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + # Wrap messages. This must be done after self._grpc_channel exists + self._prep_wrapped_messages(client_info) + + @classmethod + def create_channel(cls, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + quota_project_id: Optional[str] = None, + **kwargs) -> grpc.Channel: + """Create and return a gRPC channel object. + Args: + host (Optional[str]): The host for the channel to use. + credentials (Optional[~.Credentials]): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is mutually exclusive with credentials. + scopes (Optional[Sequence[str]]): A optional list of scopes needed for this + service. These are only used when credentials are not specified and + are passed to :func:`google.auth.default`. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + kwargs (Optional[dict]): Keyword arguments, which are passed to the + channel creation. + Returns: + grpc.Channel: A gRPC channel object. + + Raises: + google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` + and ``credentials_file`` are passed. + """ + + return grpc_helpers.create_channel( + host, + credentials=credentials, + credentials_file=credentials_file, + quota_project_id=quota_project_id, + default_scopes=cls.AUTH_SCOPES, + scopes=scopes, + default_host=cls.DEFAULT_HOST, + **kwargs + ) + + @property + def grpc_channel(self) -> grpc.Channel: + """Return the channel designed to connect to this service. + """ + return self._grpc_channel + + @property + def operations_client(self) -> operations_v1.OperationsClient: + """Create the client designed to process long-running operations. + + This property caches on the instance; repeated calls return the same + client. + """ + # Quick check: Only create a new client if we do not already have one. + if self._operations_client is None: + self._operations_client = operations_v1.OperationsClient( + self.grpc_channel + ) + + # Return the client from cache. + return self._operations_client + + @property + def list_policy_based_routes(self) -> Callable[ + [policy_based_routing.ListPolicyBasedRoutesRequest], + policy_based_routing.ListPolicyBasedRoutesResponse]: + r"""Return a callable for the list policy based routes method over gRPC. + + Lists PolicyBasedRoutes in a given project and + location. + + Returns: + Callable[[~.ListPolicyBasedRoutesRequest], + ~.ListPolicyBasedRoutesResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_policy_based_routes' not in self._stubs: + self._stubs['list_policy_based_routes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/ListPolicyBasedRoutes', + request_serializer=policy_based_routing.ListPolicyBasedRoutesRequest.serialize, + response_deserializer=policy_based_routing.ListPolicyBasedRoutesResponse.deserialize, + ) + return self._stubs['list_policy_based_routes'] + + @property + def get_policy_based_route(self) -> Callable[ + [policy_based_routing.GetPolicyBasedRouteRequest], + policy_based_routing.PolicyBasedRoute]: + r"""Return a callable for the get policy based route method over gRPC. + + Gets details of a single PolicyBasedRoute. + + Returns: + Callable[[~.GetPolicyBasedRouteRequest], + ~.PolicyBasedRoute]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_policy_based_route' not in self._stubs: + self._stubs['get_policy_based_route'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/GetPolicyBasedRoute', + request_serializer=policy_based_routing.GetPolicyBasedRouteRequest.serialize, + response_deserializer=policy_based_routing.PolicyBasedRoute.deserialize, + ) + return self._stubs['get_policy_based_route'] + + @property + def create_policy_based_route(self) -> Callable[ + [policy_based_routing.CreatePolicyBasedRouteRequest], + operations_pb2.Operation]: + r"""Return a callable for the create policy based route method over gRPC. + + Creates a new PolicyBasedRoute in a given project and + location. + + Returns: + Callable[[~.CreatePolicyBasedRouteRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_policy_based_route' not in self._stubs: + self._stubs['create_policy_based_route'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/CreatePolicyBasedRoute', + request_serializer=policy_based_routing.CreatePolicyBasedRouteRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_policy_based_route'] + + @property + def delete_policy_based_route(self) -> Callable[ + [policy_based_routing.DeletePolicyBasedRouteRequest], + operations_pb2.Operation]: + r"""Return a callable for the delete policy based route method over gRPC. + + Deletes a single PolicyBasedRoute. + + Returns: + Callable[[~.DeletePolicyBasedRouteRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_policy_based_route' not in self._stubs: + self._stubs['delete_policy_based_route'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/DeletePolicyBasedRoute', + request_serializer=policy_based_routing.DeletePolicyBasedRouteRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_policy_based_route'] + + def close(self): + self.grpc_channel.close() + + @property + def delete_operation( + self, + ) -> Callable[[operations_pb2.DeleteOperationRequest], None]: + r"""Return a callable for the delete_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "delete_operation" not in self._stubs: + self._stubs["delete_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/DeleteOperation", + request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString, + response_deserializer=None, + ) + return self._stubs["delete_operation"] + + @property + def cancel_operation( + self, + ) -> Callable[[operations_pb2.CancelOperationRequest], None]: + r"""Return a callable for the cancel_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "cancel_operation" not in self._stubs: + self._stubs["cancel_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/CancelOperation", + request_serializer=operations_pb2.CancelOperationRequest.SerializeToString, + response_deserializer=None, + ) + return self._stubs["cancel_operation"] + + @property + def get_operation( + self, + ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]: + r"""Return a callable for the get_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_operation" not in self._stubs: + self._stubs["get_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/GetOperation", + request_serializer=operations_pb2.GetOperationRequest.SerializeToString, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs["get_operation"] + + @property + def list_operations( + self, + ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]: + r"""Return a callable for the list_operations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_operations" not in self._stubs: + self._stubs["list_operations"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/ListOperations", + request_serializer=operations_pb2.ListOperationsRequest.SerializeToString, + response_deserializer=operations_pb2.ListOperationsResponse.FromString, + ) + return self._stubs["list_operations"] + + @property + def list_locations( + self, + ) -> Callable[[locations_pb2.ListLocationsRequest], locations_pb2.ListLocationsResponse]: + r"""Return a callable for the list locations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_locations" not in self._stubs: + self._stubs["list_locations"] = self.grpc_channel.unary_unary( + "/google.cloud.location.Locations/ListLocations", + request_serializer=locations_pb2.ListLocationsRequest.SerializeToString, + response_deserializer=locations_pb2.ListLocationsResponse.FromString, + ) + return self._stubs["list_locations"] + + @property + def get_location( + self, + ) -> Callable[[locations_pb2.GetLocationRequest], locations_pb2.Location]: + r"""Return a callable for the list locations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_location" not in self._stubs: + self._stubs["get_location"] = self.grpc_channel.unary_unary( + "/google.cloud.location.Locations/GetLocation", + request_serializer=locations_pb2.GetLocationRequest.SerializeToString, + response_deserializer=locations_pb2.Location.FromString, + ) + return self._stubs["get_location"] + + @property + def set_iam_policy( + self, + ) -> Callable[[iam_policy_pb2.SetIamPolicyRequest], policy_pb2.Policy]: + r"""Return a callable for the set iam policy method over gRPC. + Sets the IAM access control policy on the specified + function. Replaces any existing policy. + Returns: + Callable[[~.SetIamPolicyRequest], + ~.Policy]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "set_iam_policy" not in self._stubs: + self._stubs["set_iam_policy"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/SetIamPolicy", + request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString, + response_deserializer=policy_pb2.Policy.FromString, + ) + return self._stubs["set_iam_policy"] + + @property + def get_iam_policy( + self, + ) -> Callable[[iam_policy_pb2.GetIamPolicyRequest], policy_pb2.Policy]: + r"""Return a callable for the get iam policy method over gRPC. + Gets the IAM access control policy for a function. + Returns an empty policy if the function exists and does + not have a policy set. + Returns: + Callable[[~.GetIamPolicyRequest], + ~.Policy]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_iam_policy" not in self._stubs: + self._stubs["get_iam_policy"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/GetIamPolicy", + request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString, + response_deserializer=policy_pb2.Policy.FromString, + ) + return self._stubs["get_iam_policy"] + + @property + def test_iam_permissions( + self, + ) -> Callable[ + [iam_policy_pb2.TestIamPermissionsRequest], iam_policy_pb2.TestIamPermissionsResponse + ]: + r"""Return a callable for the test iam permissions method over gRPC. + Tests the specified permissions against the IAM access control + policy for a function. If the function does not exist, this will + return an empty set of permissions, not a NOT_FOUND error. + Returns: + Callable[[~.TestIamPermissionsRequest], + ~.TestIamPermissionsResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "test_iam_permissions" not in self._stubs: + self._stubs["test_iam_permissions"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/TestIamPermissions", + request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString, + response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString, + ) + return self._stubs["test_iam_permissions"] + + @property + def kind(self) -> str: + return "grpc" + + +__all__ = ( + 'PolicyBasedRoutingServiceGrpcTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc_asyncio.py new file mode 100644 index 000000000000..56fe007b201c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc_asyncio.py @@ -0,0 +1,554 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import warnings +from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union + +from google.api_core import gapic_v1 +from google.api_core import grpc_helpers_async +from google.api_core import operations_v1 +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore + +import grpc # type: ignore +from grpc.experimental import aio # type: ignore + +from google.cloud.location import locations_pb2 # type: ignore +from google.cloud.networkconnectivity_v1.types import policy_based_routing +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from .base import PolicyBasedRoutingServiceTransport, DEFAULT_CLIENT_INFO +from .grpc import PolicyBasedRoutingServiceGrpcTransport + + +class PolicyBasedRoutingServiceGrpcAsyncIOTransport(PolicyBasedRoutingServiceTransport): + """gRPC AsyncIO backend transport for PolicyBasedRoutingService. + + Policy-Based Routing allows GCP customers to specify + flexibile routing policies for Layer 4 traffic traversing + through the connected service. + + This class defines the same methods as the primary client, so the + primary client can load the underlying transport implementation + and call it. + + It sends protocol buffers over the wire using gRPC (which is built on + top of HTTP/2); the ``grpcio`` package must be installed. + """ + + _grpc_channel: aio.Channel + _stubs: Dict[str, Callable] = {} + + @classmethod + def create_channel(cls, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + quota_project_id: Optional[str] = None, + **kwargs) -> aio.Channel: + """Create and return a gRPC AsyncIO channel object. + Args: + host (Optional[str]): The host for the channel to use. + credentials (Optional[~.Credentials]): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional[Sequence[str]]): A optional list of scopes needed for this + service. These are only used when credentials are not specified and + are passed to :func:`google.auth.default`. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + kwargs (Optional[dict]): Keyword arguments, which are passed to the + channel creation. + Returns: + aio.Channel: A gRPC AsyncIO channel object. + """ + + return grpc_helpers_async.create_channel( + host, + credentials=credentials, + credentials_file=credentials_file, + quota_project_id=quota_project_id, + default_scopes=cls.AUTH_SCOPES, + scopes=scopes, + default_host=cls.DEFAULT_HOST, + **kwargs + ) + + def __init__(self, *, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[aio.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + always_use_jwt_access: Optional[bool] = False, + api_audience: Optional[str] = None, + ) -> None: + """Instantiate the transport. + + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is ignored if ``channel`` is provided. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional[Sequence[str]]): A optional list of scopes needed for this + service. These are only used when credentials are not specified and + are passed to :func:`google.auth.default`. + channel (Optional[aio.Channel]): A ``Channel`` instance through + which to make calls. + api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. + If provided, it overrides the ``host`` argument and tries to create + a mutual TLS channel with client SSL credentials from + ``client_cert_source`` or application default SSL credentials. + client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): + Deprecated. A callback to provide client SSL certificate bytes and + private key bytes, both in PEM format. It is ignored if + ``api_mtls_endpoint`` is None. + ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials + for the grpc channel. It is ignored if ``channel`` is provided. + client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): + A callback to provide client certificate bytes and private key bytes, + both in PEM format. It is used to configure a mutual TLS channel. It is + ignored if ``channel`` or ``ssl_channel_credentials`` is provided. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + + Raises: + google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport + creation failed for any reason. + google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` + and ``credentials_file`` are passed. + """ + self._grpc_channel = None + self._ssl_channel_credentials = ssl_channel_credentials + self._stubs: Dict[str, Callable] = {} + self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None + + if api_mtls_endpoint: + warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) + if client_cert_source: + warnings.warn("client_cert_source is deprecated", DeprecationWarning) + + if channel: + # Ignore credentials if a channel was passed. + credentials = False + # If a channel was explicitly provided, set it. + self._grpc_channel = channel + self._ssl_channel_credentials = None + else: + if api_mtls_endpoint: + host = api_mtls_endpoint + + # Create SSL credentials with client_cert_source or application + # default SSL credentials. + if client_cert_source: + cert, key = client_cert_source() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + else: + self._ssl_channel_credentials = SslCredentials().ssl_credentials + + else: + if client_cert_source_for_mtls and not ssl_channel_credentials: + cert, key = client_cert_source_for_mtls() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + + # The base transport sets the host, credentials and scopes + super().__init__( + host=host, + credentials=credentials, + credentials_file=credentials_file, + scopes=scopes, + quota_project_id=quota_project_id, + client_info=client_info, + always_use_jwt_access=always_use_jwt_access, + api_audience=api_audience, + ) + + if not self._grpc_channel: + self._grpc_channel = type(self).create_channel( + self._host, + # use the credentials which are saved + credentials=self._credentials, + # Set ``credentials_file`` to ``None`` here as + # the credentials that we saved earlier should be used. + credentials_file=None, + scopes=self._scopes, + ssl_credentials=self._ssl_channel_credentials, + quota_project_id=quota_project_id, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + # Wrap messages. This must be done after self._grpc_channel exists + self._prep_wrapped_messages(client_info) + + @property + def grpc_channel(self) -> aio.Channel: + """Create the channel designed to connect to this service. + + This property caches on the instance; repeated calls return + the same channel. + """ + # Return the channel from cache. + return self._grpc_channel + + @property + def operations_client(self) -> operations_v1.OperationsAsyncClient: + """Create the client designed to process long-running operations. + + This property caches on the instance; repeated calls return the same + client. + """ + # Quick check: Only create a new client if we do not already have one. + if self._operations_client is None: + self._operations_client = operations_v1.OperationsAsyncClient( + self.grpc_channel + ) + + # Return the client from cache. + return self._operations_client + + @property + def list_policy_based_routes(self) -> Callable[ + [policy_based_routing.ListPolicyBasedRoutesRequest], + Awaitable[policy_based_routing.ListPolicyBasedRoutesResponse]]: + r"""Return a callable for the list policy based routes method over gRPC. + + Lists PolicyBasedRoutes in a given project and + location. + + Returns: + Callable[[~.ListPolicyBasedRoutesRequest], + Awaitable[~.ListPolicyBasedRoutesResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_policy_based_routes' not in self._stubs: + self._stubs['list_policy_based_routes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/ListPolicyBasedRoutes', + request_serializer=policy_based_routing.ListPolicyBasedRoutesRequest.serialize, + response_deserializer=policy_based_routing.ListPolicyBasedRoutesResponse.deserialize, + ) + return self._stubs['list_policy_based_routes'] + + @property + def get_policy_based_route(self) -> Callable[ + [policy_based_routing.GetPolicyBasedRouteRequest], + Awaitable[policy_based_routing.PolicyBasedRoute]]: + r"""Return a callable for the get policy based route method over gRPC. + + Gets details of a single PolicyBasedRoute. + + Returns: + Callable[[~.GetPolicyBasedRouteRequest], + Awaitable[~.PolicyBasedRoute]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_policy_based_route' not in self._stubs: + self._stubs['get_policy_based_route'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/GetPolicyBasedRoute', + request_serializer=policy_based_routing.GetPolicyBasedRouteRequest.serialize, + response_deserializer=policy_based_routing.PolicyBasedRoute.deserialize, + ) + return self._stubs['get_policy_based_route'] + + @property + def create_policy_based_route(self) -> Callable[ + [policy_based_routing.CreatePolicyBasedRouteRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the create policy based route method over gRPC. + + Creates a new PolicyBasedRoute in a given project and + location. + + Returns: + Callable[[~.CreatePolicyBasedRouteRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_policy_based_route' not in self._stubs: + self._stubs['create_policy_based_route'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/CreatePolicyBasedRoute', + request_serializer=policy_based_routing.CreatePolicyBasedRouteRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_policy_based_route'] + + @property + def delete_policy_based_route(self) -> Callable[ + [policy_based_routing.DeletePolicyBasedRouteRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the delete policy based route method over gRPC. + + Deletes a single PolicyBasedRoute. + + Returns: + Callable[[~.DeletePolicyBasedRouteRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_policy_based_route' not in self._stubs: + self._stubs['delete_policy_based_route'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/DeletePolicyBasedRoute', + request_serializer=policy_based_routing.DeletePolicyBasedRouteRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_policy_based_route'] + + def close(self): + return self.grpc_channel.close() + + @property + def delete_operation( + self, + ) -> Callable[[operations_pb2.DeleteOperationRequest], None]: + r"""Return a callable for the delete_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "delete_operation" not in self._stubs: + self._stubs["delete_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/DeleteOperation", + request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString, + response_deserializer=None, + ) + return self._stubs["delete_operation"] + + @property + def cancel_operation( + self, + ) -> Callable[[operations_pb2.CancelOperationRequest], None]: + r"""Return a callable for the cancel_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "cancel_operation" not in self._stubs: + self._stubs["cancel_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/CancelOperation", + request_serializer=operations_pb2.CancelOperationRequest.SerializeToString, + response_deserializer=None, + ) + return self._stubs["cancel_operation"] + + @property + def get_operation( + self, + ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]: + r"""Return a callable for the get_operation method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_operation" not in self._stubs: + self._stubs["get_operation"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/GetOperation", + request_serializer=operations_pb2.GetOperationRequest.SerializeToString, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs["get_operation"] + + @property + def list_operations( + self, + ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]: + r"""Return a callable for the list_operations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_operations" not in self._stubs: + self._stubs["list_operations"] = self.grpc_channel.unary_unary( + "/google.longrunning.Operations/ListOperations", + request_serializer=operations_pb2.ListOperationsRequest.SerializeToString, + response_deserializer=operations_pb2.ListOperationsResponse.FromString, + ) + return self._stubs["list_operations"] + + @property + def list_locations( + self, + ) -> Callable[[locations_pb2.ListLocationsRequest], locations_pb2.ListLocationsResponse]: + r"""Return a callable for the list locations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_locations" not in self._stubs: + self._stubs["list_locations"] = self.grpc_channel.unary_unary( + "/google.cloud.location.Locations/ListLocations", + request_serializer=locations_pb2.ListLocationsRequest.SerializeToString, + response_deserializer=locations_pb2.ListLocationsResponse.FromString, + ) + return self._stubs["list_locations"] + + @property + def get_location( + self, + ) -> Callable[[locations_pb2.GetLocationRequest], locations_pb2.Location]: + r"""Return a callable for the list locations method over gRPC. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_location" not in self._stubs: + self._stubs["get_location"] = self.grpc_channel.unary_unary( + "/google.cloud.location.Locations/GetLocation", + request_serializer=locations_pb2.GetLocationRequest.SerializeToString, + response_deserializer=locations_pb2.Location.FromString, + ) + return self._stubs["get_location"] + + @property + def set_iam_policy( + self, + ) -> Callable[[iam_policy_pb2.SetIamPolicyRequest], policy_pb2.Policy]: + r"""Return a callable for the set iam policy method over gRPC. + Sets the IAM access control policy on the specified + function. Replaces any existing policy. + Returns: + Callable[[~.SetIamPolicyRequest], + ~.Policy]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "set_iam_policy" not in self._stubs: + self._stubs["set_iam_policy"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/SetIamPolicy", + request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString, + response_deserializer=policy_pb2.Policy.FromString, + ) + return self._stubs["set_iam_policy"] + + @property + def get_iam_policy( + self, + ) -> Callable[[iam_policy_pb2.GetIamPolicyRequest], policy_pb2.Policy]: + r"""Return a callable for the get iam policy method over gRPC. + Gets the IAM access control policy for a function. + Returns an empty policy if the function exists and does + not have a policy set. + Returns: + Callable[[~.GetIamPolicyRequest], + ~.Policy]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_iam_policy" not in self._stubs: + self._stubs["get_iam_policy"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/GetIamPolicy", + request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString, + response_deserializer=policy_pb2.Policy.FromString, + ) + return self._stubs["get_iam_policy"] + + @property + def test_iam_permissions( + self, + ) -> Callable[ + [iam_policy_pb2.TestIamPermissionsRequest], iam_policy_pb2.TestIamPermissionsResponse + ]: + r"""Return a callable for the test iam permissions method over gRPC. + Tests the specified permissions against the IAM access control + policy for a function. If the function does not exist, this will + return an empty set of permissions, not a NOT_FOUND error. + Returns: + Callable[[~.TestIamPermissionsRequest], + ~.TestIamPermissionsResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "test_iam_permissions" not in self._stubs: + self._stubs["test_iam_permissions"] = self.grpc_channel.unary_unary( + "/google.iam.v1.IAMPolicy/TestIamPermissions", + request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString, + response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString, + ) + return self._stubs["test_iam_permissions"] + + +__all__ = ( + 'PolicyBasedRoutingServiceGrpcAsyncIOTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/__init__.py new file mode 100644 index 000000000000..026f4c533d69 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/__init__.py @@ -0,0 +1,128 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from .common import ( + OperationMetadata, +) +from .hub import ( + AcceptHubSpokeRequest, + AcceptHubSpokeResponse, + CreateHubRequest, + CreateSpokeRequest, + DeleteHubRequest, + DeleteSpokeRequest, + GetGroupRequest, + GetHubRequest, + GetRouteRequest, + GetRouteTableRequest, + GetSpokeRequest, + Group, + Hub, + LinkedInterconnectAttachments, + LinkedRouterApplianceInstances, + LinkedVpcNetwork, + LinkedVpnTunnels, + ListGroupsRequest, + ListGroupsResponse, + ListHubSpokesRequest, + ListHubSpokesResponse, + ListHubsRequest, + ListHubsResponse, + ListRoutesRequest, + ListRoutesResponse, + ListRouteTablesRequest, + ListRouteTablesResponse, + ListSpokesRequest, + ListSpokesResponse, + LocationMetadata, + NextHopVpcNetwork, + RejectHubSpokeRequest, + RejectHubSpokeResponse, + Route, + RouterApplianceInstance, + RouteTable, + RoutingVPC, + Spoke, + SpokeSummary, + UpdateHubRequest, + UpdateSpokeRequest, + LocationFeature, + RouteType, + SpokeType, + State, +) +from .policy_based_routing import ( + CreatePolicyBasedRouteRequest, + DeletePolicyBasedRouteRequest, + GetPolicyBasedRouteRequest, + ListPolicyBasedRoutesRequest, + ListPolicyBasedRoutesResponse, + PolicyBasedRoute, +) + +__all__ = ( + 'OperationMetadata', + 'AcceptHubSpokeRequest', + 'AcceptHubSpokeResponse', + 'CreateHubRequest', + 'CreateSpokeRequest', + 'DeleteHubRequest', + 'DeleteSpokeRequest', + 'GetGroupRequest', + 'GetHubRequest', + 'GetRouteRequest', + 'GetRouteTableRequest', + 'GetSpokeRequest', + 'Group', + 'Hub', + 'LinkedInterconnectAttachments', + 'LinkedRouterApplianceInstances', + 'LinkedVpcNetwork', + 'LinkedVpnTunnels', + 'ListGroupsRequest', + 'ListGroupsResponse', + 'ListHubSpokesRequest', + 'ListHubSpokesResponse', + 'ListHubsRequest', + 'ListHubsResponse', + 'ListRoutesRequest', + 'ListRoutesResponse', + 'ListRouteTablesRequest', + 'ListRouteTablesResponse', + 'ListSpokesRequest', + 'ListSpokesResponse', + 'LocationMetadata', + 'NextHopVpcNetwork', + 'RejectHubSpokeRequest', + 'RejectHubSpokeResponse', + 'Route', + 'RouterApplianceInstance', + 'RouteTable', + 'RoutingVPC', + 'Spoke', + 'SpokeSummary', + 'UpdateHubRequest', + 'UpdateSpokeRequest', + 'LocationFeature', + 'RouteType', + 'SpokeType', + 'State', + 'CreatePolicyBasedRouteRequest', + 'DeletePolicyBasedRouteRequest', + 'GetPolicyBasedRouteRequest', + 'ListPolicyBasedRoutesRequest', + 'ListPolicyBasedRoutesResponse', + 'PolicyBasedRoute', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/common.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/common.py new file mode 100644 index 000000000000..328f6bffea4e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/common.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from __future__ import annotations + +from typing import MutableMapping, MutableSequence + +import proto # type: ignore + +from google.protobuf import timestamp_pb2 # type: ignore + + +__protobuf__ = proto.module( + package='google.cloud.networkconnectivity.v1', + manifest={ + 'OperationMetadata', + }, +) + + +class OperationMetadata(proto.Message): + r"""Represents the metadata of the long-running operation. + + Attributes: + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the operation was + created. + end_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the operation finished + running. + target (str): + Output only. Server-defined resource path for + the target of the operation. + verb (str): + Output only. Name of the verb executed by the + operation. + status_message (str): + Output only. Human-readable status of the + operation, if any. + requested_cancellation (bool): + Output only. Identifies whether the user has requested + cancellation of the operation. Operations that have been + cancelled successfully have [Operation.error][] value with a + [google.rpc.Status.code][google.rpc.Status.code] of 1, + corresponding to ``Code.CANCELLED``. + api_version (str): + Output only. API version used to start the + operation. + """ + + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=1, + message=timestamp_pb2.Timestamp, + ) + end_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + target: str = proto.Field( + proto.STRING, + number=3, + ) + verb: str = proto.Field( + proto.STRING, + number=4, + ) + status_message: str = proto.Field( + proto.STRING, + number=5, + ) + requested_cancellation: bool = proto.Field( + proto.BOOL, + number=6, + ) + api_version: str = proto.Field( + proto.STRING, + number=7, + ) + + +__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/hub.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/hub.py new file mode 100644 index 000000000000..c3fe6a2cfe8b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/hub.py @@ -0,0 +1,2030 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from __future__ import annotations + +from typing import MutableMapping, MutableSequence + +import proto # type: ignore + +from google.protobuf import field_mask_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore + + +__protobuf__ = proto.module( + package='google.cloud.networkconnectivity.v1', + manifest={ + 'LocationFeature', + 'RouteType', + 'State', + 'SpokeType', + 'Hub', + 'RoutingVPC', + 'Spoke', + 'RouteTable', + 'Route', + 'Group', + 'ListHubsRequest', + 'ListHubsResponse', + 'GetHubRequest', + 'CreateHubRequest', + 'UpdateHubRequest', + 'DeleteHubRequest', + 'ListHubSpokesRequest', + 'ListHubSpokesResponse', + 'ListSpokesRequest', + 'ListSpokesResponse', + 'GetSpokeRequest', + 'CreateSpokeRequest', + 'UpdateSpokeRequest', + 'DeleteSpokeRequest', + 'AcceptHubSpokeRequest', + 'AcceptHubSpokeResponse', + 'RejectHubSpokeRequest', + 'RejectHubSpokeResponse', + 'GetRouteTableRequest', + 'GetRouteRequest', + 'ListRoutesRequest', + 'ListRoutesResponse', + 'ListRouteTablesRequest', + 'ListRouteTablesResponse', + 'ListGroupsRequest', + 'ListGroupsResponse', + 'LinkedVpnTunnels', + 'LinkedInterconnectAttachments', + 'LinkedRouterApplianceInstances', + 'LinkedVpcNetwork', + 'RouterApplianceInstance', + 'LocationMetadata', + 'NextHopVpcNetwork', + 'SpokeSummary', + 'GetGroupRequest', + }, +) + + +class LocationFeature(proto.Enum): + r"""Supported features for a location + + Values: + LOCATION_FEATURE_UNSPECIFIED (0): + No publicly supported feature in this + location + SITE_TO_CLOUD_SPOKES (1): + Site-to-cloud spokes are supported in this + location + SITE_TO_SITE_SPOKES (2): + Site-to-site spokes are supported in this + location + """ + LOCATION_FEATURE_UNSPECIFIED = 0 + SITE_TO_CLOUD_SPOKES = 1 + SITE_TO_SITE_SPOKES = 2 + + +class RouteType(proto.Enum): + r"""The route's type + + Values: + ROUTE_TYPE_UNSPECIFIED (0): + No route type information specified + VPC_PRIMARY_SUBNET (1): + The route leads to a destination within the + primary address range of the VPC network's + subnet. + VPC_SECONDARY_SUBNET (2): + The route leads to a destination within the + secondary address range of the VPC network's + subnet. + """ + ROUTE_TYPE_UNSPECIFIED = 0 + VPC_PRIMARY_SUBNET = 1 + VPC_SECONDARY_SUBNET = 2 + + +class State(proto.Enum): + r"""The State enum represents the lifecycle stage of a Network + Connectivity Center resource. + + Values: + STATE_UNSPECIFIED (0): + No state information available + CREATING (1): + The resource's create operation is in + progress. + ACTIVE (2): + The resource is active + DELETING (3): + The resource's delete operation is in + progress. + ACCEPTING (8): + The resource's accept operation is in + progress. + REJECTING (9): + The resource's reject operation is in + progress. + UPDATING (6): + The resource's update operation is in + progress. + INACTIVE (7): + The resource is inactive. + OBSOLETE (10): + The hub associated with this spoke resource + has been deleted. This state applies to spoke + resources only. + """ + STATE_UNSPECIFIED = 0 + CREATING = 1 + ACTIVE = 2 + DELETING = 3 + ACCEPTING = 8 + REJECTING = 9 + UPDATING = 6 + INACTIVE = 7 + OBSOLETE = 10 + + +class SpokeType(proto.Enum): + r"""The SpokeType enum represents the type of spoke. The type + reflects the kind of resource that a spoke is associated with. + + Values: + SPOKE_TYPE_UNSPECIFIED (0): + Unspecified spoke type. + VPN_TUNNEL (1): + Spokes associated with VPN tunnels. + INTERCONNECT_ATTACHMENT (2): + Spokes associated with VLAN attachments. + ROUTER_APPLIANCE (3): + Spokes associated with router appliance + instances. + VPC_NETWORK (4): + Spokes associated with VPC networks. + """ + SPOKE_TYPE_UNSPECIFIED = 0 + VPN_TUNNEL = 1 + INTERCONNECT_ATTACHMENT = 2 + ROUTER_APPLIANCE = 3 + VPC_NETWORK = 4 + + +class Hub(proto.Message): + r"""A Network Connectivity Center hub is a global management + resource to which you attach spokes. A single hub can contain + spokes from multiple regions. However, if any of a hub's spokes + use the site-to-site data transfer feature, the resources + associated with those spokes must all be in the same VPC + network. Spokes that do not use site-to-site data transfer can + be associated with any VPC network in your project. + + Attributes: + name (str): + Immutable. The name of the hub. Hub names must be unique. + They use the following form: + ``projects/{project_number}/locations/global/hubs/{hub_id}`` + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the hub was created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the hub was last + updated. + labels (MutableMapping[str, str]): + Optional labels in key-value pair format. For more + information about labels, see `Requirements for + labels `__. + description (str): + An optional description of the hub. + unique_id (str): + Output only. The Google-generated UUID for the hub. This + value is unique across all hub resources. If a hub is + deleted and another with the same name is created, the new + hub is assigned a different unique_id. + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The current lifecycle state of + this hub. + routing_vpcs (MutableSequence[google.cloud.networkconnectivity_v1.types.RoutingVPC]): + The VPC networks associated with this hub's + spokes. + This field is read-only. Network Connectivity + Center automatically populates it based on the + set of spokes attached to the hub. + route_tables (MutableSequence[str]): + Output only. The route tables that belong to this hub. They + use the following form: + ``projects/{project_number}/locations/global/hubs/{hub_id}/routeTables/{route_table_id}`` + + This field is read-only. Network Connectivity Center + automatically populates it based on the route tables nested + under the hub. + spoke_summary (google.cloud.networkconnectivity_v1.types.SpokeSummary): + Output only. A summary of the spokes + associated with a hub. The summary includes a + count of spokes according to type and according + to state. If any spokes are inactive, the + summary also lists the reasons they are + inactive, including a count for each reason. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=3, + message=timestamp_pb2.Timestamp, + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=4, + ) + description: str = proto.Field( + proto.STRING, + number=5, + ) + unique_id: str = proto.Field( + proto.STRING, + number=8, + ) + state: 'State' = proto.Field( + proto.ENUM, + number=9, + enum='State', + ) + routing_vpcs: MutableSequence['RoutingVPC'] = proto.RepeatedField( + proto.MESSAGE, + number=10, + message='RoutingVPC', + ) + route_tables: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=11, + ) + spoke_summary: 'SpokeSummary' = proto.Field( + proto.MESSAGE, + number=12, + message='SpokeSummary', + ) + + +class RoutingVPC(proto.Message): + r"""RoutingVPC contains information about the VPC networks + associated with the spokes of a Network Connectivity Center hub. + + Attributes: + uri (str): + The URI of the VPC network. + required_for_new_site_to_site_data_transfer_spokes (bool): + Output only. If true, indicates that this VPC network is + currently associated with spokes that use the data transfer + feature (spokes where the site_to_site_data_transfer field + is set to true). If you create new spokes that use data + transfer, they must be associated with this VPC network. At + most, one VPC network will have this field set to true. + """ + + uri: str = proto.Field( + proto.STRING, + number=1, + ) + required_for_new_site_to_site_data_transfer_spokes: bool = proto.Field( + proto.BOOL, + number=2, + ) + + +class Spoke(proto.Message): + r"""A Network Connectivity Center spoke represents one or more network + connectivity resources. + + When you create a spoke, you associate it with a hub. You must also + identify a value for exactly one of the following fields: + + - linked_vpn_tunnels + - linked_interconnect_attachments + - linked_router_appliance_instances + - linked_vpc_network + + Attributes: + name (str): + Immutable. The name of the spoke. Spoke names must be + unique. They use the following form: + ``projects/{project_number}/locations/{region}/spokes/{spoke_id}`` + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the spoke was created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the spoke was last + updated. + labels (MutableMapping[str, str]): + Optional labels in key-value pair format. For more + information about labels, see `Requirements for + labels `__. + description (str): + An optional description of the spoke. + hub (str): + Immutable. The name of the hub that this + spoke is attached to. + group (str): + Optional. The name of the group that this + spoke is associated with. + linked_vpn_tunnels (google.cloud.networkconnectivity_v1.types.LinkedVpnTunnels): + VPN tunnels that are associated with the + spoke. + linked_interconnect_attachments (google.cloud.networkconnectivity_v1.types.LinkedInterconnectAttachments): + VLAN attachments that are associated with the + spoke. + linked_router_appliance_instances (google.cloud.networkconnectivity_v1.types.LinkedRouterApplianceInstances): + Router appliance instances that are + associated with the spoke. + linked_vpc_network (google.cloud.networkconnectivity_v1.types.LinkedVpcNetwork): + Optional. VPC network that is associated with + the spoke. + unique_id (str): + Output only. The Google-generated UUID for the spoke. This + value is unique across all spoke resources. If a spoke is + deleted and another with the same name is created, the new + spoke is assigned a different ``unique_id``. + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The current lifecycle state of + this spoke. + reasons (MutableSequence[google.cloud.networkconnectivity_v1.types.Spoke.StateReason]): + Output only. The reasons for current state of the spoke. + Only present when the spoke is in the ``INACTIVE`` state. + spoke_type (google.cloud.networkconnectivity_v1.types.SpokeType): + Output only. The type of resource associated + with the spoke. + """ + + class StateReason(proto.Message): + r"""The reason a spoke is inactive. + + Attributes: + code (google.cloud.networkconnectivity_v1.types.Spoke.StateReason.Code): + The code associated with this reason. + message (str): + Human-readable details about this reason. + user_details (str): + Additional information provided by the user + in the RejectSpoke call. + """ + class Code(proto.Enum): + r"""The Code enum represents the various reasons a state can be + ``INACTIVE``. + + Values: + CODE_UNSPECIFIED (0): + No information available. + PENDING_REVIEW (1): + The proposed spoke is pending review. + REJECTED (2): + The proposed spoke has been rejected by the + hub administrator. + PAUSED (3): + The spoke has been deactivated internally. + FAILED (4): + Network Connectivity Center encountered + errors while accepting the spoke. + """ + CODE_UNSPECIFIED = 0 + PENDING_REVIEW = 1 + REJECTED = 2 + PAUSED = 3 + FAILED = 4 + + code: 'Spoke.StateReason.Code' = proto.Field( + proto.ENUM, + number=1, + enum='Spoke.StateReason.Code', + ) + message: str = proto.Field( + proto.STRING, + number=2, + ) + user_details: str = proto.Field( + proto.STRING, + number=3, + ) + + name: str = proto.Field( + proto.STRING, + number=1, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=3, + message=timestamp_pb2.Timestamp, + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=4, + ) + description: str = proto.Field( + proto.STRING, + number=5, + ) + hub: str = proto.Field( + proto.STRING, + number=6, + ) + group: str = proto.Field( + proto.STRING, + number=23, + ) + linked_vpn_tunnels: 'LinkedVpnTunnels' = proto.Field( + proto.MESSAGE, + number=17, + message='LinkedVpnTunnels', + ) + linked_interconnect_attachments: 'LinkedInterconnectAttachments' = proto.Field( + proto.MESSAGE, + number=18, + message='LinkedInterconnectAttachments', + ) + linked_router_appliance_instances: 'LinkedRouterApplianceInstances' = proto.Field( + proto.MESSAGE, + number=19, + message='LinkedRouterApplianceInstances', + ) + linked_vpc_network: 'LinkedVpcNetwork' = proto.Field( + proto.MESSAGE, + number=20, + message='LinkedVpcNetwork', + ) + unique_id: str = proto.Field( + proto.STRING, + number=11, + ) + state: 'State' = proto.Field( + proto.ENUM, + number=15, + enum='State', + ) + reasons: MutableSequence[StateReason] = proto.RepeatedField( + proto.MESSAGE, + number=21, + message=StateReason, + ) + spoke_type: 'SpokeType' = proto.Field( + proto.ENUM, + number=22, + enum='SpokeType', + ) + + +class RouteTable(proto.Message): + r""" + + Attributes: + name (str): + Immutable. The name of the route table. Route table names + must be unique. They use the following form: + ``projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}`` + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the route table was + created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the route table was + last updated. + labels (MutableMapping[str, str]): + Optional labels in key-value pair format. For more + information about labels, see `Requirements for + labels `__. + description (str): + An optional description of the route table. + uid (str): + Output only. The Google-generated UUID for the route table. + This value is unique across all route table resources. If a + route table is deleted and another with the same name is + created, the new route table is assigned a different + ``uid``. + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The current lifecycle state of + this route table. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=3, + message=timestamp_pb2.Timestamp, + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=4, + ) + description: str = proto.Field( + proto.STRING, + number=5, + ) + uid: str = proto.Field( + proto.STRING, + number=6, + ) + state: 'State' = proto.Field( + proto.ENUM, + number=7, + enum='State', + ) + + +class Route(proto.Message): + r"""A route defines a path from VM instances within a spoke to a + specific destination resource. Only VPC spokes have routes. + + Attributes: + name (str): + Immutable. The name of the route. Route names must be + unique. Route names use the following form: + ``projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}/routes/{route_id}`` + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the route was created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the route was last + updated. + ip_cidr_range (str): + The destination IP address range. + type_ (google.cloud.networkconnectivity_v1.types.RouteType): + Output only. The route's type. Its type is + determined by the properties of its IP address + range. + next_hop_vpc_network (google.cloud.networkconnectivity_v1.types.NextHopVpcNetwork): + Immutable. The destination VPC network for + packets on this route. + labels (MutableMapping[str, str]): + Optional labels in key-value pair format. For more + information about labels, see `Requirements for + labels `__. + description (str): + An optional description of the route. + uid (str): + Output only. The Google-generated UUID for the route. This + value is unique across all Network Connectivity Center route + resources. If a route is deleted and another with the same + name is created, the new route is assigned a different + ``uid``. + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The current lifecycle state of + the route. + spoke (str): + Immutable. The spoke that this route leads + to. Example: + projects/12345/locations/global/spokes/SPOKE + location (str): + Output only. The location of the route. + Uses the following form: + "projects/{project}/locations/{location}" + Example: projects/1234/locations/us-central1 + """ + + name: str = proto.Field( + proto.STRING, + number=3, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=4, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=5, + message=timestamp_pb2.Timestamp, + ) + ip_cidr_range: str = proto.Field( + proto.STRING, + number=1, + ) + type_: 'RouteType' = proto.Field( + proto.ENUM, + number=10, + enum='RouteType', + ) + next_hop_vpc_network: 'NextHopVpcNetwork' = proto.Field( + proto.MESSAGE, + number=2, + message='NextHopVpcNetwork', + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=6, + ) + description: str = proto.Field( + proto.STRING, + number=7, + ) + uid: str = proto.Field( + proto.STRING, + number=8, + ) + state: 'State' = proto.Field( + proto.ENUM, + number=9, + enum='State', + ) + spoke: str = proto.Field( + proto.STRING, + number=11, + ) + location: str = proto.Field( + proto.STRING, + number=12, + ) + + +class Group(proto.Message): + r"""A group represents a subset of spokes attached to a hub. + + Attributes: + name (str): + Immutable. The name of the group. Group names must be + unique. They use the following form: + ``projects/{project_number}/locations/global/hubs/{hub}/groups/{group_id}`` + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the group was created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the group was last + updated. + labels (MutableMapping[str, str]): + Optional. Labels in key-value pair format. For more + information about labels, see `Requirements for + labels `__. + description (str): + Optional. The description of the group. + uid (str): + Output only. The Google-generated UUID for the group. This + value is unique across all group resources. If a group is + deleted and another with the same name is created, the new + route table is assigned a different unique_id. + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The current lifecycle state of + this group. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=3, + message=timestamp_pb2.Timestamp, + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=4, + ) + description: str = proto.Field( + proto.STRING, + number=5, + ) + uid: str = proto.Field( + proto.STRING, + number=6, + ) + state: 'State' = proto.Field( + proto.ENUM, + number=7, + enum='State', + ) + + +class ListHubsRequest(proto.Message): + r"""Request for + [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] + method. + + Attributes: + parent (str): + Required. The parent resource's name. + page_size (int): + The maximum number of results per page to + return. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListHubsResponse(proto.Message): + r"""Response for + [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] + method. + + Attributes: + hubs (MutableSequence[google.cloud.networkconnectivity_v1.types.Hub]): + The requested hubs. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + Locations that could not be reached. + """ + + @property + def raw_page(self): + return self + + hubs: MutableSequence['Hub'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='Hub', + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class GetHubRequest(proto.Message): + r"""Request for + [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub] + method. + + Attributes: + name (str): + Required. The name of the hub resource to + get. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +class CreateHubRequest(proto.Message): + r"""Request for + [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub] + method. + + Attributes: + parent (str): + Required. The parent resource. + hub_id (str): + Required. A unique identifier for the hub. + hub (google.cloud.networkconnectivity_v1.types.Hub): + Required. The initial values for a new hub. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + hub_id: str = proto.Field( + proto.STRING, + number=2, + ) + hub: 'Hub' = proto.Field( + proto.MESSAGE, + number=3, + message='Hub', + ) + request_id: str = proto.Field( + proto.STRING, + number=4, + ) + + +class UpdateHubRequest(proto.Message): + r"""Request for + [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub] + method. + + Attributes: + update_mask (google.protobuf.field_mask_pb2.FieldMask): + Optional. In the case of an update to an existing hub, field + mask is used to specify the fields to be overwritten. The + fields specified in the update_mask are relative to the + resource, not the full request. A field is overwritten if it + is in the mask. If the user does not provide a mask, then + all fields are overwritten. + hub (google.cloud.networkconnectivity_v1.types.Hub): + Required. The state that the hub should be in + after the update. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + """ + + update_mask: field_mask_pb2.FieldMask = proto.Field( + proto.MESSAGE, + number=1, + message=field_mask_pb2.FieldMask, + ) + hub: 'Hub' = proto.Field( + proto.MESSAGE, + number=2, + message='Hub', + ) + request_id: str = proto.Field( + proto.STRING, + number=3, + ) + + +class DeleteHubRequest(proto.Message): + r"""The request for + [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub]. + + Attributes: + name (str): + Required. The name of the hub to delete. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + request_id: str = proto.Field( + proto.STRING, + number=2, + ) + + +class ListHubSpokesRequest(proto.Message): + r"""The request for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + + Attributes: + name (str): + Required. The name of the hub. + spoke_locations (MutableSequence[str]): + A list of locations. Specify one of the following: + ``[global]``, a single region (for example, + ``[us-central1]``), or a combination of values (for example, + ``[global, us-central1, us-west1]``). If the spoke_locations + field is populated, the list of results includes only spokes + in the specified location. If the spoke_locations field is + not populated, the list of results includes spokes in all + locations. + page_size (int): + The maximum number of results to return per + page. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by name or create_time. + view (google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest.SpokeView): + The view of the spoke to return. + The view that you use determines which spoke + fields are included in the response. + """ + class SpokeView(proto.Enum): + r"""Enum that controls which spoke fields are included in the + response. + + Values: + SPOKE_VIEW_UNSPECIFIED (0): + The spoke view is unspecified. When the spoke view is + unspecified, the API returns the same fields as the + ``BASIC`` view. + BASIC (1): + Includes ``name``, ``create_time``, ``hub``, ``unique_id``, + ``state``, ``reasons``, and ``spoke_type``. This is the + default value. + DETAILED (2): + Includes all spoke fields except ``labels``. You can use the + ``DETAILED`` view only when you set the ``spoke_locations`` + field to ``[global]``. + """ + SPOKE_VIEW_UNSPECIFIED = 0 + BASIC = 1 + DETAILED = 2 + + name: str = proto.Field( + proto.STRING, + number=1, + ) + spoke_locations: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=2, + ) + page_size: int = proto.Field( + proto.INT32, + number=3, + ) + page_token: str = proto.Field( + proto.STRING, + number=4, + ) + filter: str = proto.Field( + proto.STRING, + number=5, + ) + order_by: str = proto.Field( + proto.STRING, + number=6, + ) + view: SpokeView = proto.Field( + proto.ENUM, + number=7, + enum=SpokeView, + ) + + +class ListHubSpokesResponse(proto.Message): + r"""The response for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + + Attributes: + spokes (MutableSequence[google.cloud.networkconnectivity_v1.types.Spoke]): + The requested spokes. The spoke fields can be partially + populated based on the ``view`` field in the request + message. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + Locations that could not be reached. + """ + + @property + def raw_page(self): + return self + + spokes: MutableSequence['Spoke'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='Spoke', + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class ListSpokesRequest(proto.Message): + r"""The request for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. + + Attributes: + parent (str): + Required. The parent resource. + page_size (int): + The maximum number of results to return per + page. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListSpokesResponse(proto.Message): + r"""The response for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. + + Attributes: + spokes (MutableSequence[google.cloud.networkconnectivity_v1.types.Spoke]): + The requested spokes. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + Locations that could not be reached. + """ + + @property + def raw_page(self): + return self + + spokes: MutableSequence['Spoke'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='Spoke', + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class GetSpokeRequest(proto.Message): + r"""The request for + [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke]. + + Attributes: + name (str): + Required. The name of the spoke resource. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +class CreateSpokeRequest(proto.Message): + r"""The request for + [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke]. + + Attributes: + parent (str): + Required. The parent resource. + spoke_id (str): + Required. Unique id for the spoke to create. + spoke (google.cloud.networkconnectivity_v1.types.Spoke): + Required. The initial values for a new spoke. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + spoke_id: str = proto.Field( + proto.STRING, + number=2, + ) + spoke: 'Spoke' = proto.Field( + proto.MESSAGE, + number=3, + message='Spoke', + ) + request_id: str = proto.Field( + proto.STRING, + number=4, + ) + + +class UpdateSpokeRequest(proto.Message): + r"""Request for + [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke] + method. + + Attributes: + update_mask (google.protobuf.field_mask_pb2.FieldMask): + Optional. In the case of an update to an existing spoke, + field mask is used to specify the fields to be overwritten. + The fields specified in the update_mask are relative to the + resource, not the full request. A field is overwritten if it + is in the mask. If the user does not provide a mask, then + all fields are overwritten. + spoke (google.cloud.networkconnectivity_v1.types.Spoke): + Required. The state that the spoke should be + in after the update. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + """ + + update_mask: field_mask_pb2.FieldMask = proto.Field( + proto.MESSAGE, + number=1, + message=field_mask_pb2.FieldMask, + ) + spoke: 'Spoke' = proto.Field( + proto.MESSAGE, + number=2, + message='Spoke', + ) + request_id: str = proto.Field( + proto.STRING, + number=3, + ) + + +class DeleteSpokeRequest(proto.Message): + r"""The request for + [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. + + Attributes: + name (str): + Required. The name of the spoke to delete. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + request_id: str = proto.Field( + proto.STRING, + number=2, + ) + + +class AcceptHubSpokeRequest(proto.Message): + r"""The request for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + + Attributes: + name (str): + Required. The name of the hub into which to + accept the spoke. + spoke_uri (str): + Required. The URI of the spoke to accept into + the hub. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + spoke_uri: str = proto.Field( + proto.STRING, + number=2, + ) + request_id: str = proto.Field( + proto.STRING, + number=3, + ) + + +class AcceptHubSpokeResponse(proto.Message): + r"""The response for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + + Attributes: + spoke (google.cloud.networkconnectivity_v1.types.Spoke): + The spoke that was operated on. + """ + + spoke: 'Spoke' = proto.Field( + proto.MESSAGE, + number=1, + message='Spoke', + ) + + +class RejectHubSpokeRequest(proto.Message): + r"""The request for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. + + Attributes: + name (str): + Required. The name of the hub from which to + reject the spoke. + spoke_uri (str): + Required. The URI of the spoke to reject from + the hub. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + details (str): + Optional. Additional information provided by + the hub administrator. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + spoke_uri: str = proto.Field( + proto.STRING, + number=2, + ) + request_id: str = proto.Field( + proto.STRING, + number=3, + ) + details: str = proto.Field( + proto.STRING, + number=4, + ) + + +class RejectHubSpokeResponse(proto.Message): + r"""The response for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. + + Attributes: + spoke (google.cloud.networkconnectivity_v1.types.Spoke): + The spoke that was operated on. + """ + + spoke: 'Spoke' = proto.Field( + proto.MESSAGE, + number=1, + message='Spoke', + ) + + +class GetRouteTableRequest(proto.Message): + r"""The request for + [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. + + Attributes: + name (str): + Required. The name of the route table + resource. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +class GetRouteRequest(proto.Message): + r"""The request for + [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. + + Attributes: + name (str): + Required. The name of the route resource. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +class ListRoutesRequest(proto.Message): + r"""Request for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + + Attributes: + parent (str): + Required. The parent resource's name. + page_size (int): + The maximum number of results to return per + page. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListRoutesResponse(proto.Message): + r"""Response for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + + Attributes: + routes (MutableSequence[google.cloud.networkconnectivity_v1.types.Route]): + The requested routes. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + RouteTables that could not be reached. + """ + + @property + def raw_page(self): + return self + + routes: MutableSequence['Route'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='Route', + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class ListRouteTablesRequest(proto.Message): + r"""Request for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + + Attributes: + parent (str): + Required. The parent resource's name. + page_size (int): + The maximum number of results to return per + page. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListRouteTablesResponse(proto.Message): + r"""Response for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + + Attributes: + route_tables (MutableSequence[google.cloud.networkconnectivity_v1.types.RouteTable]): + The requested route tables. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + Hubs that could not be reached. + """ + + @property + def raw_page(self): + return self + + route_tables: MutableSequence['RouteTable'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='RouteTable', + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class ListGroupsRequest(proto.Message): + r"""Request for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + + Attributes: + parent (str): + Required. The parent resource's name. + page_size (int): + The maximum number of results to return per + page. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListGroupsResponse(proto.Message): + r"""Response for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + + Attributes: + groups (MutableSequence[google.cloud.networkconnectivity_v1.types.Group]): + The requested groups. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + Hubs that could not be reached. + """ + + @property + def raw_page(self): + return self + + groups: MutableSequence['Group'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='Group', + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class LinkedVpnTunnels(proto.Message): + r"""A collection of Cloud VPN tunnel resources. These resources + should be redundant HA VPN tunnels that all advertise the same + prefixes to Google Cloud. Alternatively, in a passive/active + configuration, all tunnels should be capable of advertising the + same prefixes. + + Attributes: + uris (MutableSequence[str]): + The URIs of linked VPN tunnel resources. + site_to_site_data_transfer (bool): + A value that controls whether site-to-site data transfer is + enabled for these resources. Data transfer is available only + in `supported + locations `__. + vpc_network (str): + Output only. The VPC network where these VPN + tunnels are located. + """ + + uris: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=1, + ) + site_to_site_data_transfer: bool = proto.Field( + proto.BOOL, + number=2, + ) + vpc_network: str = proto.Field( + proto.STRING, + number=3, + ) + + +class LinkedInterconnectAttachments(proto.Message): + r"""A collection of VLAN attachment resources. These resources + should be redundant attachments that all advertise the same + prefixes to Google Cloud. Alternatively, in active/passive + configurations, all attachments should be capable of advertising + the same prefixes. + + Attributes: + uris (MutableSequence[str]): + The URIs of linked interconnect attachment + resources + site_to_site_data_transfer (bool): + A value that controls whether site-to-site data transfer is + enabled for these resources. Data transfer is available only + in `supported + locations `__. + vpc_network (str): + Output only. The VPC network where these VLAN + attachments are located. + """ + + uris: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=1, + ) + site_to_site_data_transfer: bool = proto.Field( + proto.BOOL, + number=2, + ) + vpc_network: str = proto.Field( + proto.STRING, + number=3, + ) + + +class LinkedRouterApplianceInstances(proto.Message): + r"""A collection of router appliance instances. If you configure + multiple router appliance instances to receive data from the + same set of sites outside of Google Cloud, we recommend that you + associate those instances with the same spoke. + + Attributes: + instances (MutableSequence[google.cloud.networkconnectivity_v1.types.RouterApplianceInstance]): + The list of router appliance instances. + site_to_site_data_transfer (bool): + A value that controls whether site-to-site data transfer is + enabled for these resources. Data transfer is available only + in `supported + locations `__. + vpc_network (str): + Output only. The VPC network where these + router appliance instances are located. + """ + + instances: MutableSequence['RouterApplianceInstance'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='RouterApplianceInstance', + ) + site_to_site_data_transfer: bool = proto.Field( + proto.BOOL, + number=2, + ) + vpc_network: str = proto.Field( + proto.STRING, + number=3, + ) + + +class LinkedVpcNetwork(proto.Message): + r"""An existing VPC network. + + Attributes: + uri (str): + Required. The URI of the VPC network + resource. + exclude_export_ranges (MutableSequence[str]): + Optional. IP ranges encompassing the subnets + to be excluded from peering. + """ + + uri: str = proto.Field( + proto.STRING, + number=1, + ) + exclude_export_ranges: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=2, + ) + + +class RouterApplianceInstance(proto.Message): + r"""A router appliance instance is a Compute Engine virtual + machine (VM) instance that acts as a BGP speaker. A router + appliance instance is specified by the URI of the VM and the + internal IP address of one of the VM's network interfaces. + + Attributes: + virtual_machine (str): + The URI of the VM. + ip_address (str): + The IP address on the VM to use for peering. + """ + + virtual_machine: str = proto.Field( + proto.STRING, + number=1, + ) + ip_address: str = proto.Field( + proto.STRING, + number=3, + ) + + +class LocationMetadata(proto.Message): + r"""Metadata about locations + + Attributes: + location_features (MutableSequence[google.cloud.networkconnectivity_v1.types.LocationFeature]): + List of supported features + """ + + location_features: MutableSequence['LocationFeature'] = proto.RepeatedField( + proto.ENUM, + number=1, + enum='LocationFeature', + ) + + +class NextHopVpcNetwork(proto.Message): + r""" + + Attributes: + uri (str): + The URI of the VPC network resource + """ + + uri: str = proto.Field( + proto.STRING, + number=1, + ) + + +class SpokeSummary(proto.Message): + r"""Summarizes information about the spokes associated with a + hub. The summary includes a count of spokes according to type + and according to state. If any spokes are inactive, the summary + also lists the reasons they are inactive, including a count for + each reason. + + Attributes: + spoke_type_counts (MutableSequence[google.cloud.networkconnectivity_v1.types.SpokeSummary.SpokeTypeCount]): + Output only. Counts the number of spokes of + each type that are associated with a specific + hub. + spoke_state_counts (MutableSequence[google.cloud.networkconnectivity_v1.types.SpokeSummary.SpokeStateCount]): + Output only. Counts the number of spokes that + are in each state and associated with a given + hub. + spoke_state_reason_counts (MutableSequence[google.cloud.networkconnectivity_v1.types.SpokeSummary.SpokeStateReasonCount]): + Output only. Counts the number of spokes that + are inactive for each possible reason and + associated with a given hub. + """ + + class SpokeTypeCount(proto.Message): + r"""The number of spokes of a given type that are associated + with a specific hub. The type indicates what kind of resource is + associated with the spoke. + + Attributes: + spoke_type (google.cloud.networkconnectivity_v1.types.SpokeType): + Output only. The type of the spokes. + count (int): + Output only. The total number of spokes of + this type that are associated with the hub. + """ + + spoke_type: 'SpokeType' = proto.Field( + proto.ENUM, + number=1, + enum='SpokeType', + ) + count: int = proto.Field( + proto.INT64, + number=2, + ) + + class SpokeStateCount(proto.Message): + r"""The number of spokes that are in a particular state + and associated with a given hub. + + Attributes: + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The state of the spokes. + count (int): + Output only. The total number of spokes that + are in this state and associated with a given + hub. + """ + + state: 'State' = proto.Field( + proto.ENUM, + number=1, + enum='State', + ) + count: int = proto.Field( + proto.INT64, + number=2, + ) + + class SpokeStateReasonCount(proto.Message): + r"""The number of spokes in the hub that are inactive for this + reason. + + Attributes: + state_reason_code (google.cloud.networkconnectivity_v1.types.Spoke.StateReason.Code): + Output only. The reason that a spoke is + inactive. + count (int): + Output only. The total number of spokes that + are inactive for a particular reason and + associated with a given hub. + """ + + state_reason_code: 'Spoke.StateReason.Code' = proto.Field( + proto.ENUM, + number=1, + enum='Spoke.StateReason.Code', + ) + count: int = proto.Field( + proto.INT64, + number=2, + ) + + spoke_type_counts: MutableSequence[SpokeTypeCount] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message=SpokeTypeCount, + ) + spoke_state_counts: MutableSequence[SpokeStateCount] = proto.RepeatedField( + proto.MESSAGE, + number=2, + message=SpokeStateCount, + ) + spoke_state_reason_counts: MutableSequence[SpokeStateReasonCount] = proto.RepeatedField( + proto.MESSAGE, + number=3, + message=SpokeStateReasonCount, + ) + + +class GetGroupRequest(proto.Message): + r"""The request for + [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. + + Attributes: + name (str): + Required. The name of the route table + resource. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/policy_based_routing.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/policy_based_routing.py new file mode 100644 index 000000000000..61d9daa0dc00 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/policy_based_routing.py @@ -0,0 +1,530 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from __future__ import annotations + +from typing import MutableMapping, MutableSequence + +import proto # type: ignore + +from google.protobuf import timestamp_pb2 # type: ignore + + +__protobuf__ = proto.module( + package='google.cloud.networkconnectivity.v1', + manifest={ + 'PolicyBasedRoute', + 'ListPolicyBasedRoutesRequest', + 'ListPolicyBasedRoutesResponse', + 'GetPolicyBasedRouteRequest', + 'CreatePolicyBasedRouteRequest', + 'DeletePolicyBasedRouteRequest', + }, +) + + +class PolicyBasedRoute(proto.Message): + r"""Policy Based Routes (PBR) are more powerful routes that + allows GCP customers to route their L4 network traffic based on + not just destination IP, but also source IP, protocol and more. + A PBR always take precedence when it conflicts with other types + of routes. + Next id: 22 + + This message has `oneof`_ fields (mutually exclusive fields). + For each oneof, at most one member field can be set at the same time. + Setting any member of the oneof automatically clears all other + members. + + .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields + + Attributes: + virtual_machine (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.VirtualMachine): + Optional. VM instances to which this policy + based route applies to. + + This field is a member of `oneof`_ ``target``. + interconnect_attachment (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.InterconnectAttachment): + Optional. The interconnect attachments to + which this route applies to. + + This field is a member of `oneof`_ ``target``. + next_hop_ilb_ip (str): + Optional. The IP of a global access enabled L4 ILB that + should be the next hop to handle matching packets. For this + version, only next_hop_ilb_ip is supported. + + This field is a member of `oneof`_ ``next_hop``. + next_hop_other_routes (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.OtherRoutes): + Optional. Other routes that will be + referenced to determine the next hop of the + packet. + + This field is a member of `oneof`_ ``next_hop``. + name (str): + Immutable. A unique name of the resource in the form of + ``projects/{project_number}/locations/global/PolicyBasedRoutes/{policy_based_route_id}`` + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. Time when the PolicyBasedRoute + was created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. Time when the PolicyBasedRoute + was updated. + labels (MutableMapping[str, str]): + User-defined labels. + description (str): + Optional. An optional description of this + resource. Provide this field when you create the + resource. + network (str): + Required. Fully-qualified URL of the network + that this route applies to. e.g. + projects/my-project/global/networks/my-network. + filter (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Filter): + Required. The filter to match L4 traffic. + priority (int): + Optional. The priority of this policy based + route. Priority is used to break ties in cases + where there are more than one matching policy + based routes found. In cases where multiple + policy based routes are matched, the one with + the lowest-numbered priority value wins. The + default value is + 1000. The priority value must be from 1 to + 65535, inclusive. + warnings (MutableSequence[google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Warnings]): + Output only. If potential misconfigurations + are detected for this route, this field will be + populated with warning messages. + self_link (str): + Output only. Server-defined fully-qualified + URL for this resource. + kind (str): + Output only. Type of this resource. Always + networkconnectivity#policyBasedRoute for Policy + Based Route resources. + """ + class OtherRoutes(proto.Enum): + r"""The other routing cases. + + Values: + OTHER_ROUTES_UNSPECIFIED (0): + Default value. + DEFAULT_ROUTING (1): + Use the routes from the default routing + tables (system-generated routes, custom routes, + peering route) to determine the next hop. This + will effectively exclude matching packets being + applied on other PBRs with a lower priority. + """ + OTHER_ROUTES_UNSPECIFIED = 0 + DEFAULT_ROUTING = 1 + + class VirtualMachine(proto.Message): + r"""VM instances to which this policy based route applies to. + + Attributes: + tags (MutableSequence[str]): + Optional. A list of VM instance tags to which + this policy based route applies to. VM instances + that have ANY of tags specified here will + install this PBR. + """ + + tags: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=1, + ) + + class InterconnectAttachment(proto.Message): + r"""InterconnectAttachment to which this route applies to. + + Attributes: + region (str): + Optional. Cloud region to install this policy based route on + interconnect attachment. Use ``all`` to install it on all + interconnect attachments. + """ + + region: str = proto.Field( + proto.STRING, + number=1, + ) + + class Filter(proto.Message): + r"""Filter matches L4 traffic. + + Attributes: + ip_protocol (str): + Optional. The IP protocol that this policy + based route applies to. Valid values are 'TCP', + 'UDP', and 'ALL'. Default is 'ALL'. + src_range (str): + Optional. The source IP range of outgoing + packets that this policy based route applies to. + Default is "0.0.0.0/0" if protocol version is + IPv4. + dest_range (str): + Optional. The destination IP range of + outgoing packets that this policy based route + applies to. Default is "0.0.0.0/0" if protocol + version is IPv4. + protocol_version (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Filter.ProtocolVersion): + Required. Internet protocol versions this + policy based route applies to. For this version, + only IPV4 is supported. + """ + class ProtocolVersion(proto.Enum): + r"""The internet protocol version. + + Values: + PROTOCOL_VERSION_UNSPECIFIED (0): + Default value. + IPV4 (1): + The PBR is for IPv4 internet protocol + traffic. + """ + PROTOCOL_VERSION_UNSPECIFIED = 0 + IPV4 = 1 + + ip_protocol: str = proto.Field( + proto.STRING, + number=1, + ) + src_range: str = proto.Field( + proto.STRING, + number=2, + ) + dest_range: str = proto.Field( + proto.STRING, + number=3, + ) + protocol_version: 'PolicyBasedRoute.Filter.ProtocolVersion' = proto.Field( + proto.ENUM, + number=6, + enum='PolicyBasedRoute.Filter.ProtocolVersion', + ) + + class Warnings(proto.Message): + r"""Informational warning message. + + Attributes: + code (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Warnings.Code): + Output only. A warning code, if applicable. + data (MutableMapping[str, str]): + Output only. Metadata about this warning in + key: value format. The key should provides more + detail on the warning being returned. For + example, for warnings where there are no results + in a list request for a particular zone, this + key might be scope and the key value might be + the zone name. Other examples might be a key + indicating a deprecated resource and a suggested + replacement. + warning_message (str): + Output only. A human-readable description of + the warning code. + """ + class Code(proto.Enum): + r"""Warning code for Policy Based Routing. Expect to add values + in the future. + + Values: + WARNING_UNSPECIFIED (0): + Default value. + RESOURCE_NOT_ACTIVE (1): + The policy based route is not active and + functioning. Common causes are the dependent + network was deleted or the resource project was + turned off. + RESOURCE_BEING_MODIFIED (2): + The policy based route is being modified + (e.g. created/deleted) at this time. + """ + WARNING_UNSPECIFIED = 0 + RESOURCE_NOT_ACTIVE = 1 + RESOURCE_BEING_MODIFIED = 2 + + code: 'PolicyBasedRoute.Warnings.Code' = proto.Field( + proto.ENUM, + number=1, + enum='PolicyBasedRoute.Warnings.Code', + ) + data: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=2, + ) + warning_message: str = proto.Field( + proto.STRING, + number=3, + ) + + virtual_machine: VirtualMachine = proto.Field( + proto.MESSAGE, + number=18, + oneof='target', + message=VirtualMachine, + ) + interconnect_attachment: InterconnectAttachment = proto.Field( + proto.MESSAGE, + number=9, + oneof='target', + message=InterconnectAttachment, + ) + next_hop_ilb_ip: str = proto.Field( + proto.STRING, + number=12, + oneof='next_hop', + ) + next_hop_other_routes: OtherRoutes = proto.Field( + proto.ENUM, + number=21, + oneof='next_hop', + enum=OtherRoutes, + ) + name: str = proto.Field( + proto.STRING, + number=1, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=3, + message=timestamp_pb2.Timestamp, + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=4, + ) + description: str = proto.Field( + proto.STRING, + number=5, + ) + network: str = proto.Field( + proto.STRING, + number=6, + ) + filter: Filter = proto.Field( + proto.MESSAGE, + number=10, + message=Filter, + ) + priority: int = proto.Field( + proto.INT32, + number=11, + ) + warnings: MutableSequence[Warnings] = proto.RepeatedField( + proto.MESSAGE, + number=14, + message=Warnings, + ) + self_link: str = proto.Field( + proto.STRING, + number=15, + ) + kind: str = proto.Field( + proto.STRING, + number=16, + ) + + +class ListPolicyBasedRoutesRequest(proto.Message): + r"""Request for [PolicyBasedRouting.ListPolicyBasedRoutes][] method. + + Attributes: + parent (str): + Required. The parent resource's name. + page_size (int): + The maximum number of results per page that + should be returned. + page_token (str): + The page token. + filter (str): + A filter expression that filters the results + listed in the response. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListPolicyBasedRoutesResponse(proto.Message): + r"""Response for [PolicyBasedRouting.ListPolicyBasedRoutes][] method. + + Attributes: + policy_based_routes (MutableSequence[google.cloud.networkconnectivity_v1.types.PolicyBasedRoute]): + Policy based routes to be returned. + next_page_token (str): + The next pagination token in the List response. It should be + used as page_token for the following request. An empty value + means no more result. + unreachable (MutableSequence[str]): + Locations that could not be reached. + """ + + @property + def raw_page(self): + return self + + policy_based_routes: MutableSequence['PolicyBasedRoute'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='PolicyBasedRoute', + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class GetPolicyBasedRouteRequest(proto.Message): + r"""Request for [PolicyBasedRouting.GetPolicyBasedRoute][] method. + + Attributes: + name (str): + Required. Name of the PolicyBasedRoute + resource to get. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +class CreatePolicyBasedRouteRequest(proto.Message): + r"""Request for [PolicyBasedRouting.CreatePolicyBasedRoute][] method. + + Attributes: + parent (str): + Required. The parent resource's name of the + PolicyBasedRoute. + policy_based_route_id (str): + Required. Unique id for the Policy Based + Route to create. + policy_based_route (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute): + Required. Initial values for a new Policy + Based Route. + request_id (str): + Optional. 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. The server will guarantee that + for at least 60 minutes since the first request. + + 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). + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + policy_based_route_id: str = proto.Field( + proto.STRING, + number=2, + ) + policy_based_route: 'PolicyBasedRoute' = proto.Field( + proto.MESSAGE, + number=3, + message='PolicyBasedRoute', + ) + request_id: str = proto.Field( + proto.STRING, + number=4, + ) + + +class DeletePolicyBasedRouteRequest(proto.Message): + r"""Request for [PolicyBasedRouting.DeletePolicyBasedRoute][] method. + + Attributes: + name (str): + Required. Name of the PolicyBasedRoute + resource to delete. + request_id (str): + Optional. 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. The server will guarantee that + for at least 60 minutes after the first request. + + 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). + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + request_id: str = proto.Field( + proto.STRING, + number=2, + ) + + +__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/mypy.ini b/owl-bot-staging/google-cloud-network-connectivity/v1/mypy.ini new file mode 100644 index 000000000000..574c5aed394b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/mypy.ini @@ -0,0 +1,3 @@ +[mypy] +python_version = 3.7 +namespace_packages = True diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/noxfile.py b/owl-bot-staging/google-cloud-network-connectivity/v1/noxfile.py new file mode 100644 index 000000000000..07f82ed0eb35 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/noxfile.py @@ -0,0 +1,184 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import os +import pathlib +import shutil +import subprocess +import sys + + +import nox # type: ignore + +ALL_PYTHON = [ + "3.7", + "3.8", + "3.9", + "3.10", + "3.11", +] + +CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute() + +LOWER_BOUND_CONSTRAINTS_FILE = CURRENT_DIRECTORY / "constraints.txt" +PACKAGE_NAME = subprocess.check_output([sys.executable, "setup.py", "--name"], encoding="utf-8") + +BLACK_VERSION = "black==22.3.0" +BLACK_PATHS = ["docs", "google", "tests", "samples", "noxfile.py", "setup.py"] +DEFAULT_PYTHON_VERSION = "3.11" + +nox.sessions = [ + "unit", + "cover", + "mypy", + "check_lower_bounds" + # exclude update_lower_bounds from default + "docs", + "blacken", + "lint", + "lint_setup_py", +] + +@nox.session(python=ALL_PYTHON) +def unit(session): + """Run the unit test suite.""" + + session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"') + session.install('-e', '.') + + session.run( + 'py.test', + '--quiet', + '--cov=google/cloud/networkconnectivity_v1/', + '--cov=tests/', + '--cov-config=.coveragerc', + '--cov-report=term', + '--cov-report=html', + os.path.join('tests', 'unit', ''.join(session.posargs)) + ) + + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def cover(session): + """Run the final coverage report. + This outputs the coverage report aggregating coverage from the unit + test runs (not system test runs), and then erases coverage data. + """ + session.install("coverage", "pytest-cov") + session.run("coverage", "report", "--show-missing", "--fail-under=100") + + session.run("coverage", "erase") + + +@nox.session(python=ALL_PYTHON) +def mypy(session): + """Run the type checker.""" + session.install( + 'mypy', + 'types-requests', + 'types-protobuf' + ) + session.install('.') + session.run( + 'mypy', + '--explicit-package-bases', + 'google', + ) + + +@nox.session +def update_lower_bounds(session): + """Update lower bounds in constraints.txt to match setup.py""" + session.install('google-cloud-testutils') + session.install('.') + + session.run( + 'lower-bound-checker', + 'update', + '--package-name', + PACKAGE_NAME, + '--constraints-file', + str(LOWER_BOUND_CONSTRAINTS_FILE), + ) + + +@nox.session +def check_lower_bounds(session): + """Check lower bounds in setup.py are reflected in constraints file""" + session.install('google-cloud-testutils') + session.install('.') + + session.run( + 'lower-bound-checker', + 'check', + '--package-name', + PACKAGE_NAME, + '--constraints-file', + str(LOWER_BOUND_CONSTRAINTS_FILE), + ) + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def docs(session): + """Build the docs for this library.""" + + session.install("-e", ".") + session.install("sphinx==7.0.1", "alabaster", "recommonmark") + + shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) + session.run( + "sphinx-build", + "-W", # warnings as errors + "-T", # show full traceback on exception + "-N", # no colors + "-b", + "html", + "-d", + os.path.join("docs", "_build", "doctrees", ""), + os.path.join("docs", ""), + os.path.join("docs", "_build", "html", ""), + ) + + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def lint(session): + """Run linters. + + Returns a failure if the linters find linting errors or sufficiently + serious code quality issues. + """ + session.install("flake8", BLACK_VERSION) + session.run( + "black", + "--check", + *BLACK_PATHS, + ) + session.run("flake8", "google", "tests", "samples") + + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def blacken(session): + """Run black. Format code to uniform standard.""" + session.install(BLACK_VERSION) + session.run( + "black", + *BLACK_PATHS, + ) + + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def lint_setup_py(session): + """Verify that setup.py is valid (including RST check).""" + session.install("docutils", "pygments") + session.run("python", "setup.py", "check", "--restructuredtext", "--strict") diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py new file mode 100644 index 000000000000..28c4ac058cde --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 AcceptHubSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_AcceptHubSpoke_async] +# 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 networkconnectivity_v1 + + +async def sample_accept_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.AcceptHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.accept_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_AcceptHubSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py new file mode 100644 index 000000000000..46d086e6b21a --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 AcceptHubSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_AcceptHubSpoke_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 networkconnectivity_v1 + + +def sample_accept_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.AcceptHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.accept_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_AcceptHubSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_async.py new file mode 100644 index 000000000000..b99a39294a99 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_async.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreateHub +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_CreateHub_async] +# 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 networkconnectivity_v1 + + +async def sample_create_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.CreateHubRequest( + parent="parent_value", + hub_id="hub_id_value", + ) + + # Make the request + operation = client.create_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_CreateHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_sync.py new file mode 100644 index 000000000000..59c05e9b8189 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_sync.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreateHub +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_CreateHub_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 networkconnectivity_v1 + + +def sample_create_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.CreateHubRequest( + parent="parent_value", + hub_id="hub_id_value", + ) + + # Make the request + operation = client.create_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_CreateHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_async.py new file mode 100644 index 000000000000..1efddf3e82ad --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_async.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreateSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_CreateSpoke_async] +# 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 networkconnectivity_v1 + + +async def sample_create_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.CreateSpokeRequest( + parent="parent_value", + spoke_id="spoke_id_value", + ) + + # Make the request + operation = client.create_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_CreateSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_sync.py new file mode 100644 index 000000000000..9429b78dc9a4 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_sync.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreateSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_CreateSpoke_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 networkconnectivity_v1 + + +def sample_create_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.CreateSpokeRequest( + parent="parent_value", + spoke_id="spoke_id_value", + ) + + # Make the request + operation = client.create_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_CreateSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_async.py new file mode 100644 index 000000000000..1867a72ca9ae --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_async.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeleteHub +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_DeleteHub_async] +# 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 networkconnectivity_v1 + + +async def sample_delete_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteHubRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_DeleteHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_sync.py new file mode 100644 index 000000000000..22ffa1caa7a6 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_sync.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeleteHub +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_DeleteHub_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 networkconnectivity_v1 + + +def sample_delete_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteHubRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_DeleteHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_async.py new file mode 100644 index 000000000000..69a63469152d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_async.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeleteSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_DeleteSpoke_async] +# 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 networkconnectivity_v1 + + +async def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_DeleteSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py new file mode 100644 index 000000000000..500c035bc0b6 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeleteSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_DeleteSpoke_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 networkconnectivity_v1 + + +def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_DeleteSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_async.py new file mode 100644 index 000000000000..e048d5e2770b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_async.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetGroup +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetGroup_async] +# 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 networkconnectivity_v1 + + +async def sample_get_group(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetGroupRequest( + name="name_value", + ) + + # Make the request + response = await client.get_group(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetGroup_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_sync.py new file mode 100644 index 000000000000..ddff36fd60f6 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_sync.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetGroup +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetGroup_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 networkconnectivity_v1 + + +def sample_get_group(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetGroupRequest( + name="name_value", + ) + + # Make the request + response = client.get_group(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetGroup_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_async.py new file mode 100644 index 000000000000..ea6cb94ccacc --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_async.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetHub +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetHub_async] +# 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 networkconnectivity_v1 + + +async def sample_get_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetHubRequest( + name="name_value", + ) + + # Make the request + response = await client.get_hub(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_sync.py new file mode 100644 index 000000000000..ec41ace1ed51 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_sync.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetHub +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetHub_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 networkconnectivity_v1 + + +def sample_get_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetHubRequest( + name="name_value", + ) + + # Make the request + response = client.get_hub(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_async.py new file mode 100644 index 000000000000..eea62cd84ec8 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_async.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetRoute +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetRoute_async] +# 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 networkconnectivity_v1 + + +async def sample_get_route(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteRequest( + name="name_value", + ) + + # Make the request + response = await client.get_route(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetRoute_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_sync.py new file mode 100644 index 000000000000..09c53e896345 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_sync.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetRoute +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetRoute_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 networkconnectivity_v1 + + +def sample_get_route(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteRequest( + name="name_value", + ) + + # Make the request + response = client.get_route(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetRoute_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_async.py new file mode 100644 index 000000000000..a1d29c72a0a4 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_async.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetRouteTable +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetRouteTable_async] +# 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 networkconnectivity_v1 + + +async def sample_get_route_table(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteTableRequest( + name="name_value", + ) + + # Make the request + response = await client.get_route_table(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetRouteTable_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_sync.py new file mode 100644 index 000000000000..54fd5dd7560c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_sync.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetRouteTable +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetRouteTable_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 networkconnectivity_v1 + + +def sample_get_route_table(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteTableRequest( + name="name_value", + ) + + # Make the request + response = client.get_route_table(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetRouteTable_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_async.py new file mode 100644 index 000000000000..a627d027ecfa --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_async.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetSpoke_async] +# 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 networkconnectivity_v1 + + +async def sample_get_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetSpokeRequest( + name="name_value", + ) + + # Make the request + response = await client.get_spoke(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_sync.py new file mode 100644 index 000000000000..0e839df867d5 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_sync.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_GetSpoke_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 networkconnectivity_v1 + + +def sample_get_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetSpokeRequest( + name="name_value", + ) + + # Make the request + response = client.get_spoke(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_GetSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_async.py new file mode 100644 index 000000000000..78c424107e9e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_async.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListGroups +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListGroups_async] +# 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 networkconnectivity_v1 + + +async def sample_list_groups(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListGroupsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_groups(request=request) + + # Handle the response + async for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListGroups_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_sync.py new file mode 100644 index 000000000000..7b752899f82c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListGroups +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListGroups_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 networkconnectivity_v1 + + +def sample_list_groups(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListGroupsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_groups(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListGroups_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py new file mode 100644 index 000000000000..8fe035fe5138 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListHubSpokes +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListHubSpokes_async] +# 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 networkconnectivity_v1 + + +async def sample_list_hub_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubSpokesRequest( + name="name_value", + ) + + # Make the request + page_result = client.list_hub_spokes(request=request) + + # Handle the response + async for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListHubSpokes_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py new file mode 100644 index 000000000000..16084dc959dd --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListHubSpokes +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListHubSpokes_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 networkconnectivity_v1 + + +def sample_list_hub_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubSpokesRequest( + name="name_value", + ) + + # Make the request + page_result = client.list_hub_spokes(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListHubSpokes_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_async.py new file mode 100644 index 000000000000..203420964803 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_async.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListHubs +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListHubs_async] +# 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 networkconnectivity_v1 + + +async def sample_list_hubs(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_hubs(request=request) + + # Handle the response + async for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListHubs_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_sync.py new file mode 100644 index 000000000000..7daccc0dd622 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListHubs +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListHubs_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 networkconnectivity_v1 + + +def sample_list_hubs(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_hubs(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListHubs_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_async.py new file mode 100644 index 000000000000..2963b3aad6d8 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_async.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListRouteTables +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListRouteTables_async] +# 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 networkconnectivity_v1 + + +async def sample_list_route_tables(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRouteTablesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_route_tables(request=request) + + # Handle the response + async for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListRouteTables_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py new file mode 100644 index 000000000000..e44c71359b1c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListRouteTables +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListRouteTables_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 networkconnectivity_v1 + + +def sample_list_route_tables(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRouteTablesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_route_tables(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListRouteTables_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_async.py new file mode 100644 index 000000000000..d92fbc4c751e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_async.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListRoutes +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListRoutes_async] +# 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 networkconnectivity_v1 + + +async def sample_list_routes(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_routes(request=request) + + # Handle the response + async for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListRoutes_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_sync.py new file mode 100644 index 000000000000..961b016c68eb --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListRoutes +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListRoutes_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 networkconnectivity_v1 + + +def sample_list_routes(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_routes(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListRoutes_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_async.py new file mode 100644 index 000000000000..9001ddfa66ec --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_async.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListSpokes +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListSpokes_async] +# 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 networkconnectivity_v1 + + +async def sample_list_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListSpokesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_spokes(request=request) + + # Handle the response + async for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListSpokes_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_sync.py new file mode 100644 index 000000000000..3168b4d12fcc --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListSpokes +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_ListSpokes_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 networkconnectivity_v1 + + +def sample_list_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListSpokesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_spokes(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_HubService_ListSpokes_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py new file mode 100644 index 000000000000..03a630a5bacb --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 RejectHubSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_RejectHubSpoke_async] +# 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 networkconnectivity_v1 + + +async def sample_reject_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.RejectHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.reject_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_RejectHubSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py new file mode 100644 index 000000000000..8e63f3397881 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 RejectHubSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_RejectHubSpoke_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 networkconnectivity_v1 + + +def sample_reject_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.RejectHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.reject_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_RejectHubSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_async.py new file mode 100644 index 000000000000..58c35b5b6a0a --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_async.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 UpdateHub +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_UpdateHub_async] +# 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 networkconnectivity_v1 + + +async def sample_update_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.UpdateHubRequest( + ) + + # Make the request + operation = client.update_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_UpdateHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_sync.py new file mode 100644 index 000000000000..0859567be439 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_sync.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 UpdateHub +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_UpdateHub_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 networkconnectivity_v1 + + +def sample_update_hub(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.UpdateHubRequest( + ) + + # Make the request + operation = client.update_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_UpdateHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_async.py new file mode 100644 index 000000000000..c736b6f4a756 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_async.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 UpdateSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_UpdateSpoke_async] +# 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 networkconnectivity_v1 + + +async def sample_update_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.UpdateSpokeRequest( + ) + + # Make the request + operation = client.update_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_UpdateSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_sync.py new file mode 100644 index 000000000000..304124b88612 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_sync.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 UpdateSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_HubService_UpdateSpoke_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 networkconnectivity_v1 + + +def sample_update_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.UpdateSpokeRequest( + ) + + # Make the request + operation = client.update_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_HubService_UpdateSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py new file mode 100644 index 000000000000..ec03a9d21dbe --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreatePolicyBasedRoute +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_async] +# 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 networkconnectivity_v1 + + +async def sample_create_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() + + # Initialize request argument(s) + policy_based_route = networkconnectivity_v1.PolicyBasedRoute() + policy_based_route.next_hop_ilb_ip = "next_hop_ilb_ip_value" + policy_based_route.network = "network_value" + policy_based_route.filter.protocol_version = "IPV4" + + request = networkconnectivity_v1.CreatePolicyBasedRouteRequest( + parent="parent_value", + policy_based_route_id="policy_based_route_id_value", + policy_based_route=policy_based_route, + ) + + # Make the request + operation = client.create_policy_based_route(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py new file mode 100644 index 000000000000..9bd36fd03fcc --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreatePolicyBasedRoute +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_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 networkconnectivity_v1 + + +def sample_create_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() + + # Initialize request argument(s) + policy_based_route = networkconnectivity_v1.PolicyBasedRoute() + policy_based_route.next_hop_ilb_ip = "next_hop_ilb_ip_value" + policy_based_route.network = "network_value" + policy_based_route.filter.protocol_version = "IPV4" + + request = networkconnectivity_v1.CreatePolicyBasedRouteRequest( + parent="parent_value", + policy_based_route_id="policy_based_route_id_value", + policy_based_route=policy_based_route, + ) + + # Make the request + operation = client.create_policy_based_route(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py new file mode 100644 index 000000000000..0524c9e42d33 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeletePolicyBasedRoute +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_async] +# 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 networkconnectivity_v1 + + +async def sample_delete_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeletePolicyBasedRouteRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_policy_based_route(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py new file mode 100644 index 000000000000..d4292eee935c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeletePolicyBasedRoute +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_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 networkconnectivity_v1 + + +def sample_delete_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeletePolicyBasedRouteRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_policy_based_route(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py new file mode 100644 index 000000000000..dcd1c57e3357 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetPolicyBasedRoute +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_async] +# 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 networkconnectivity_v1 + + +async def sample_get_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetPolicyBasedRouteRequest( + name="name_value", + ) + + # Make the request + response = await client.get_policy_based_route(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py new file mode 100644 index 000000000000..8bd912ececd2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetPolicyBasedRoute +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_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 networkconnectivity_v1 + + +def sample_get_policy_based_route(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetPolicyBasedRouteRequest( + name="name_value", + ) + + # Make the request + response = client.get_policy_based_route(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py new file mode 100644 index 000000000000..bb3be38f91db --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListPolicyBasedRoutes +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_async] +# 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 networkconnectivity_v1 + + +async def sample_list_policy_based_routes(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListPolicyBasedRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_policy_based_routes(request=request) + + # Handle the response + async for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py new file mode 100644 index 000000000000..59b09ecf0dfa --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListPolicyBasedRoutes +# 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-network-connectivity + + +# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_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 networkconnectivity_v1 + + +def sample_list_policy_based_routes(): + # Create a client + client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListPolicyBasedRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_policy_based_routes(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json new file mode 100644 index 000000000000..62ba18e54b67 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json @@ -0,0 +1,3798 @@ +{ + "clientLibrary": { + "apis": [ + { + "id": "google.cloud.networkconnectivity.v1", + "version": "v1" + } + ], + "language": "PYTHON", + "name": "google-cloud-network-connectivity", + "version": "0.1.0" + }, + "snippets": [ + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.accept_hub_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "AcceptHubSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "spoke_uri", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "accept_hub_spoke" + }, + "description": "Sample for AcceptHubSpoke", + "file": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_AcceptHubSpoke_async", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.accept_hub_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "AcceptHubSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "spoke_uri", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "accept_hub_spoke" + }, + "description": "Sample for AcceptHubSpoke", + "file": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_AcceptHubSpoke_sync", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.create_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.CreateHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "CreateHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.CreateHubRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "hub", + "type": "google.cloud.networkconnectivity_v1.types.Hub" + }, + { + "name": "hub_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "create_hub" + }, + "description": "Sample for CreateHub", + "file": "networkconnectivity_v1_generated_hub_service_create_hub_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_CreateHub_async", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_create_hub_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.create_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.CreateHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "CreateHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.CreateHubRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "hub", + "type": "google.cloud.networkconnectivity_v1.types.Hub" + }, + { + "name": "hub_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "create_hub" + }, + "description": "Sample for CreateHub", + "file": "networkconnectivity_v1_generated_hub_service_create_hub_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_CreateHub_sync", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_create_hub_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.create_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.CreateSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "CreateSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.CreateSpokeRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "spoke", + "type": "google.cloud.networkconnectivity_v1.types.Spoke" + }, + { + "name": "spoke_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "create_spoke" + }, + "description": "Sample for CreateSpoke", + "file": "networkconnectivity_v1_generated_hub_service_create_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_CreateSpoke_async", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_create_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.create_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.CreateSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "CreateSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.CreateSpokeRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "spoke", + "type": "google.cloud.networkconnectivity_v1.types.Spoke" + }, + { + "name": "spoke_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "create_spoke" + }, + "description": "Sample for CreateSpoke", + "file": "networkconnectivity_v1_generated_hub_service_create_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_CreateSpoke_sync", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_create_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.delete_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.DeleteHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "DeleteHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.DeleteHubRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "delete_hub" + }, + "description": "Sample for DeleteHub", + "file": "networkconnectivity_v1_generated_hub_service_delete_hub_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_DeleteHub_async", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_delete_hub_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.delete_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.DeleteHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "DeleteHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.DeleteHubRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "delete_hub" + }, + "description": "Sample for DeleteHub", + "file": "networkconnectivity_v1_generated_hub_service_delete_hub_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_DeleteHub_sync", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_delete_hub_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.delete_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.DeleteSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "DeleteSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "delete_spoke" + }, + "description": "Sample for DeleteSpoke", + "file": "networkconnectivity_v1_generated_hub_service_delete_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_DeleteSpoke_async", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_delete_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.delete_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.DeleteSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "DeleteSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "delete_spoke" + }, + "description": "Sample for DeleteSpoke", + "file": "networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_DeleteSpoke_sync", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_group", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetGroup", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetGroup" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetGroupRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Group", + "shortName": "get_group" + }, + "description": "Sample for GetGroup", + "file": "networkconnectivity_v1_generated_hub_service_get_group_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetGroup_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_group_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_group", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetGroup", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetGroup" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetGroupRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Group", + "shortName": "get_group" + }, + "description": "Sample for GetGroup", + "file": "networkconnectivity_v1_generated_hub_service_get_group_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetGroup_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_group_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetHubRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Hub", + "shortName": "get_hub" + }, + "description": "Sample for GetHub", + "file": "networkconnectivity_v1_generated_hub_service_get_hub_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetHub_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_hub_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetHubRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Hub", + "shortName": "get_hub" + }, + "description": "Sample for GetHub", + "file": "networkconnectivity_v1_generated_hub_service_get_hub_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetHub_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_hub_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_route_table", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRouteTable", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetRouteTable" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetRouteTableRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.RouteTable", + "shortName": "get_route_table" + }, + "description": "Sample for GetRouteTable", + "file": "networkconnectivity_v1_generated_hub_service_get_route_table_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetRouteTable_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_route_table_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_route_table", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRouteTable", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetRouteTable" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetRouteTableRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.RouteTable", + "shortName": "get_route_table" + }, + "description": "Sample for GetRouteTable", + "file": "networkconnectivity_v1_generated_hub_service_get_route_table_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetRouteTable_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_route_table_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_route", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRoute", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetRoute" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetRouteRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Route", + "shortName": "get_route" + }, + "description": "Sample for GetRoute", + "file": "networkconnectivity_v1_generated_hub_service_get_route_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetRoute_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_route_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_route", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRoute", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetRoute" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetRouteRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Route", + "shortName": "get_route" + }, + "description": "Sample for GetRoute", + "file": "networkconnectivity_v1_generated_hub_service_get_route_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetRoute_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_route_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Spoke", + "shortName": "get_spoke" + }, + "description": "Sample for GetSpoke", + "file": "networkconnectivity_v1_generated_hub_service_get_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetSpoke_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Spoke", + "shortName": "get_spoke" + }, + "description": "Sample for GetSpoke", + "file": "networkconnectivity_v1_generated_hub_service_get_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetSpoke_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_groups", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListGroups", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListGroups" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListGroupsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsAsyncPager", + "shortName": "list_groups" + }, + "description": "Sample for ListGroups", + "file": "networkconnectivity_v1_generated_hub_service_list_groups_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListGroups_async", + "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": "networkconnectivity_v1_generated_hub_service_list_groups_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_groups", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListGroups", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListGroups" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListGroupsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsPager", + "shortName": "list_groups" + }, + "description": "Sample for ListGroups", + "file": "networkconnectivity_v1_generated_hub_service_list_groups_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListGroups_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": "networkconnectivity_v1_generated_hub_service_list_groups_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_hub_spokes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubSpokes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubSpokes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesAsyncPager", + "shortName": "list_hub_spokes" + }, + "description": "Sample for ListHubSpokes", + "file": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListHubSpokes_async", + "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": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_hub_spokes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubSpokes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubSpokes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesPager", + "shortName": "list_hub_spokes" + }, + "description": "Sample for ListHubSpokes", + "file": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListHubSpokes_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": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_hubs", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubs", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubs" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListHubsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsAsyncPager", + "shortName": "list_hubs" + }, + "description": "Sample for ListHubs", + "file": "networkconnectivity_v1_generated_hub_service_list_hubs_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListHubs_async", + "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": "networkconnectivity_v1_generated_hub_service_list_hubs_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_hubs", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubs", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubs" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListHubsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsPager", + "shortName": "list_hubs" + }, + "description": "Sample for ListHubs", + "file": "networkconnectivity_v1_generated_hub_service_list_hubs_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListHubs_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": "networkconnectivity_v1_generated_hub_service_list_hubs_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_route_tables", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRouteTables", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListRouteTables" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesAsyncPager", + "shortName": "list_route_tables" + }, + "description": "Sample for ListRouteTables", + "file": "networkconnectivity_v1_generated_hub_service_list_route_tables_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListRouteTables_async", + "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": "networkconnectivity_v1_generated_hub_service_list_route_tables_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_route_tables", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRouteTables", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListRouteTables" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesPager", + "shortName": "list_route_tables" + }, + "description": "Sample for ListRouteTables", + "file": "networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListRouteTables_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": "networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_routes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRoutes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListRoutes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListRoutesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesAsyncPager", + "shortName": "list_routes" + }, + "description": "Sample for ListRoutes", + "file": "networkconnectivity_v1_generated_hub_service_list_routes_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListRoutes_async", + "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": "networkconnectivity_v1_generated_hub_service_list_routes_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_routes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRoutes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListRoutes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListRoutesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesPager", + "shortName": "list_routes" + }, + "description": "Sample for ListRoutes", + "file": "networkconnectivity_v1_generated_hub_service_list_routes_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListRoutes_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": "networkconnectivity_v1_generated_hub_service_list_routes_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_spokes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListSpokes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListSpokes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListSpokesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesAsyncPager", + "shortName": "list_spokes" + }, + "description": "Sample for ListSpokes", + "file": "networkconnectivity_v1_generated_hub_service_list_spokes_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListSpokes_async", + "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": "networkconnectivity_v1_generated_hub_service_list_spokes_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_spokes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListSpokes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListSpokes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListSpokesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesPager", + "shortName": "list_spokes" + }, + "description": "Sample for ListSpokes", + "file": "networkconnectivity_v1_generated_hub_service_list_spokes_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListSpokes_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": "networkconnectivity_v1_generated_hub_service_list_spokes_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.reject_hub_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "RejectHubSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "spoke_uri", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "reject_hub_spoke" + }, + "description": "Sample for RejectHubSpoke", + "file": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_RejectHubSpoke_async", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.reject_hub_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "RejectHubSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "spoke_uri", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "reject_hub_spoke" + }, + "description": "Sample for RejectHubSpoke", + "file": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_RejectHubSpoke_sync", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.update_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.UpdateHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "UpdateHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.UpdateHubRequest" + }, + { + "name": "hub", + "type": "google.cloud.networkconnectivity_v1.types.Hub" + }, + { + "name": "update_mask", + "type": "google.protobuf.field_mask_pb2.FieldMask" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "update_hub" + }, + "description": "Sample for UpdateHub", + "file": "networkconnectivity_v1_generated_hub_service_update_hub_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_UpdateHub_async", + "segments": [ + { + "end": 54, + "start": 27, + "type": "FULL" + }, + { + "end": 54, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 44, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 51, + "start": 45, + "type": "REQUEST_EXECUTION" + }, + { + "end": 55, + "start": 52, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_update_hub_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.update_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.UpdateHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "UpdateHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.UpdateHubRequest" + }, + { + "name": "hub", + "type": "google.cloud.networkconnectivity_v1.types.Hub" + }, + { + "name": "update_mask", + "type": "google.protobuf.field_mask_pb2.FieldMask" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "update_hub" + }, + "description": "Sample for UpdateHub", + "file": "networkconnectivity_v1_generated_hub_service_update_hub_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_UpdateHub_sync", + "segments": [ + { + "end": 54, + "start": 27, + "type": "FULL" + }, + { + "end": 54, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 44, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 51, + "start": 45, + "type": "REQUEST_EXECUTION" + }, + { + "end": 55, + "start": 52, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_update_hub_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.update_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.UpdateSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "UpdateSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest" + }, + { + "name": "spoke", + "type": "google.cloud.networkconnectivity_v1.types.Spoke" + }, + { + "name": "update_mask", + "type": "google.protobuf.field_mask_pb2.FieldMask" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "update_spoke" + }, + "description": "Sample for UpdateSpoke", + "file": "networkconnectivity_v1_generated_hub_service_update_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_UpdateSpoke_async", + "segments": [ + { + "end": 54, + "start": 27, + "type": "FULL" + }, + { + "end": 54, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 44, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 51, + "start": 45, + "type": "REQUEST_EXECUTION" + }, + { + "end": 55, + "start": 52, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_update_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.update_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.UpdateSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "UpdateSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest" + }, + { + "name": "spoke", + "type": "google.cloud.networkconnectivity_v1.types.Spoke" + }, + { + "name": "update_mask", + "type": "google.protobuf.field_mask_pb2.FieldMask" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "update_spoke" + }, + "description": "Sample for UpdateSpoke", + "file": "networkconnectivity_v1_generated_hub_service_update_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_UpdateSpoke_sync", + "segments": [ + { + "end": 54, + "start": 27, + "type": "FULL" + }, + { + "end": 54, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 44, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 51, + "start": 45, + "type": "REQUEST_EXECUTION" + }, + { + "end": 55, + "start": 52, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_update_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient", + "shortName": "PolicyBasedRoutingServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient.create_policy_based_route", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.CreatePolicyBasedRoute", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", + "shortName": "PolicyBasedRoutingService" + }, + "shortName": "CreatePolicyBasedRoute" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.CreatePolicyBasedRouteRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "policy_based_route", + "type": "google.cloud.networkconnectivity_v1.types.PolicyBasedRoute" + }, + { + "name": "policy_based_route_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "create_policy_based_route" + }, + "description": "Sample for CreatePolicyBasedRoute", + "file": "networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_async", + "segments": [ + { + "end": 62, + "start": 27, + "type": "FULL" + }, + { + "end": 62, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 52, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 59, + "start": 53, + "type": "REQUEST_EXECUTION" + }, + { + "end": 63, + "start": 60, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient", + "shortName": "PolicyBasedRoutingServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient.create_policy_based_route", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.CreatePolicyBasedRoute", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", + "shortName": "PolicyBasedRoutingService" + }, + "shortName": "CreatePolicyBasedRoute" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.CreatePolicyBasedRouteRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "policy_based_route", + "type": "google.cloud.networkconnectivity_v1.types.PolicyBasedRoute" + }, + { + "name": "policy_based_route_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "create_policy_based_route" + }, + "description": "Sample for CreatePolicyBasedRoute", + "file": "networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_sync", + "segments": [ + { + "end": 62, + "start": 27, + "type": "FULL" + }, + { + "end": 62, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 52, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 59, + "start": 53, + "type": "REQUEST_EXECUTION" + }, + { + "end": 63, + "start": 60, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient", + "shortName": "PolicyBasedRoutingServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient.delete_policy_based_route", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.DeletePolicyBasedRoute", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", + "shortName": "PolicyBasedRoutingService" + }, + "shortName": "DeletePolicyBasedRoute" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.DeletePolicyBasedRouteRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "delete_policy_based_route" + }, + "description": "Sample for DeletePolicyBasedRoute", + "file": "networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_async", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient", + "shortName": "PolicyBasedRoutingServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient.delete_policy_based_route", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.DeletePolicyBasedRoute", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", + "shortName": "PolicyBasedRoutingService" + }, + "shortName": "DeletePolicyBasedRoute" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.DeletePolicyBasedRouteRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "delete_policy_based_route" + }, + "description": "Sample for DeletePolicyBasedRoute", + "file": "networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_sync", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient", + "shortName": "PolicyBasedRoutingServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient.get_policy_based_route", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.GetPolicyBasedRoute", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", + "shortName": "PolicyBasedRoutingService" + }, + "shortName": "GetPolicyBasedRoute" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetPolicyBasedRouteRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.PolicyBasedRoute", + "shortName": "get_policy_based_route" + }, + "description": "Sample for GetPolicyBasedRoute", + "file": "networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient", + "shortName": "PolicyBasedRoutingServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient.get_policy_based_route", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.GetPolicyBasedRoute", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", + "shortName": "PolicyBasedRoutingService" + }, + "shortName": "GetPolicyBasedRoute" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetPolicyBasedRouteRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.PolicyBasedRoute", + "shortName": "get_policy_based_route" + }, + "description": "Sample for GetPolicyBasedRoute", + "file": "networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient", + "shortName": "PolicyBasedRoutingServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient.list_policy_based_routes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.ListPolicyBasedRoutes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", + "shortName": "PolicyBasedRoutingService" + }, + "shortName": "ListPolicyBasedRoutes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers.ListPolicyBasedRoutesAsyncPager", + "shortName": "list_policy_based_routes" + }, + "description": "Sample for ListPolicyBasedRoutes", + "file": "networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_async", + "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": "networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient", + "shortName": "PolicyBasedRoutingServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient.list_policy_based_routes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.ListPolicyBasedRoutes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", + "shortName": "PolicyBasedRoutingService" + }, + "shortName": "ListPolicyBasedRoutes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers.ListPolicyBasedRoutesPager", + "shortName": "list_policy_based_routes" + }, + "description": "Sample for ListPolicyBasedRoutes", + "file": "networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_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": "networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py" + } + ] +} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/scripts/fixup_networkconnectivity_v1_keywords.py b/owl-bot-staging/google-cloud-network-connectivity/v1/scripts/fixup_networkconnectivity_v1_keywords.py new file mode 100644 index 000000000000..3399ba0a311e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/scripts/fixup_networkconnectivity_v1_keywords.py @@ -0,0 +1,198 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import argparse +import os +import libcst as cst +import pathlib +import sys +from typing import (Any, Callable, Dict, List, Sequence, Tuple) + + +def partition( + predicate: Callable[[Any], bool], + iterator: Sequence[Any] +) -> Tuple[List[Any], List[Any]]: + """A stable, out-of-place partition.""" + results = ([], []) + + for i in iterator: + results[int(predicate(i))].append(i) + + # Returns trueList, falseList + return results[1], results[0] + + +class networkconnectivityCallTransformer(cst.CSTTransformer): + CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata') + METHOD_TO_PARAMS: Dict[str, Tuple[str]] = { + 'accept_hub_spoke': ('name', 'spoke_uri', 'request_id', ), + 'create_hub': ('parent', 'hub_id', 'hub', 'request_id', ), + 'create_policy_based_route': ('parent', 'policy_based_route_id', 'policy_based_route', 'request_id', ), + 'create_spoke': ('parent', 'spoke_id', 'spoke', 'request_id', ), + 'delete_hub': ('name', 'request_id', ), + 'delete_policy_based_route': ('name', 'request_id', ), + 'delete_spoke': ('name', 'request_id', ), + 'get_group': ('name', ), + 'get_hub': ('name', ), + 'get_policy_based_route': ('name', ), + 'get_route': ('name', ), + 'get_route_table': ('name', ), + 'get_spoke': ('name', ), + 'list_groups': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'list_hubs': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'list_hub_spokes': ('name', 'spoke_locations', 'page_size', 'page_token', 'filter', 'order_by', 'view', ), + 'list_policy_based_routes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'list_routes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'list_route_tables': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'list_spokes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'reject_hub_spoke': ('name', 'spoke_uri', 'request_id', 'details', ), + 'update_hub': ('hub', 'update_mask', 'request_id', ), + 'update_spoke': ('spoke', 'update_mask', 'request_id', ), + } + + def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode: + try: + key = original.func.attr.value + kword_params = self.METHOD_TO_PARAMS[key] + except (AttributeError, KeyError): + # Either not a method from the API or too convoluted to be sure. + return updated + + # If the existing code is valid, keyword args come after positional args. + # Therefore, all positional args must map to the first parameters. + args, kwargs = partition(lambda a: not bool(a.keyword), updated.args) + if any(k.keyword.value == "request" for k in kwargs): + # We've already fixed this file, don't fix it again. + return updated + + kwargs, ctrl_kwargs = partition( + lambda a: a.keyword.value not in self.CTRL_PARAMS, + kwargs + ) + + args, ctrl_args = args[:len(kword_params)], args[len(kword_params):] + ctrl_kwargs.extend(cst.Arg(value=a.value, keyword=cst.Name(value=ctrl)) + for a, ctrl in zip(ctrl_args, self.CTRL_PARAMS)) + + request_arg = cst.Arg( + value=cst.Dict([ + cst.DictElement( + cst.SimpleString("'{}'".format(name)), +cst.Element(value=arg.value) + ) + # Note: the args + kwargs looks silly, but keep in mind that + # the control parameters had to be stripped out, and that + # those could have been passed positionally or by keyword. + for name, arg in zip(kword_params, args + kwargs)]), + keyword=cst.Name("request") + ) + + return updated.with_changes( + args=[request_arg] + ctrl_kwargs + ) + + +def fix_files( + in_dir: pathlib.Path, + out_dir: pathlib.Path, + *, + transformer=networkconnectivityCallTransformer(), +): + """Duplicate the input dir to the output dir, fixing file method calls. + + Preconditions: + * in_dir is a real directory + * out_dir is a real, empty directory + """ + pyfile_gen = ( + pathlib.Path(os.path.join(root, f)) + for root, _, files in os.walk(in_dir) + for f in files if os.path.splitext(f)[1] == ".py" + ) + + for fpath in pyfile_gen: + with open(fpath, 'r') as f: + src = f.read() + + # Parse the code and insert method call fixes. + tree = cst.parse_module(src) + updated = tree.visit(transformer) + + # Create the path and directory structure for the new file. + updated_path = out_dir.joinpath(fpath.relative_to(in_dir)) + updated_path.parent.mkdir(parents=True, exist_ok=True) + + # Generate the updated source file at the corresponding path. + with open(updated_path, 'w') as f: + f.write(updated.code) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description="""Fix up source that uses the networkconnectivity client library. + +The existing sources are NOT overwritten but are copied to output_dir with changes made. + +Note: This tool operates at a best-effort level at converting positional + parameters in client method calls to keyword based parameters. + Cases where it WILL FAIL include + A) * or ** expansion in a method call. + B) Calls via function or method alias (includes free function calls) + C) Indirect or dispatched calls (e.g. the method is looked up dynamically) + + These all constitute false negatives. The tool will also detect false + positives when an API method shares a name with another method. +""") + parser.add_argument( + '-d', + '--input-directory', + required=True, + dest='input_dir', + help='the input directory to walk for python files to fix up', + ) + parser.add_argument( + '-o', + '--output-directory', + required=True, + dest='output_dir', + help='the directory to output files fixed via un-flattening', + ) + args = parser.parse_args() + input_dir = pathlib.Path(args.input_dir) + output_dir = pathlib.Path(args.output_dir) + if not input_dir.is_dir(): + print( + f"input directory '{input_dir}' does not exist or is not a directory", + file=sys.stderr, + ) + sys.exit(-1) + + if not output_dir.is_dir(): + print( + f"output directory '{output_dir}' does not exist or is not a directory", + file=sys.stderr, + ) + sys.exit(-1) + + if os.listdir(output_dir): + print( + f"output directory '{output_dir}' is not empty", + file=sys.stderr, + ) + sys.exit(-1) + + fix_files(input_dir, output_dir) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/setup.py b/owl-bot-staging/google-cloud-network-connectivity/v1/setup.py new file mode 100644 index 000000000000..5fc9aec022e4 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/setup.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import io +import os + +import setuptools # type: ignore + +package_root = os.path.abspath(os.path.dirname(__file__)) + +name = 'google-cloud-network-connectivity' + + +description = "Google Cloud Network Connectivity API client library" + +version = {} +with open(os.path.join(package_root, 'google/cloud/networkconnectivity/gapic_version.py')) as fp: + exec(fp.read(), version) +version = version["__version__"] + +if version[0] == "0": + release_status = "Development Status :: 4 - Beta" +else: + release_status = "Development Status :: 5 - Production/Stable" + +dependencies = [ + "google-api-core[grpc] >= 1.34.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "proto-plus >= 1.22.0, <2.0.0dev", + "proto-plus >= 1.22.2, <2.0.0dev; python_version>='3.11'", + "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "grpc-google-iam-v1 >= 0.12.4, <1.0.0dev", +] +url = "https://github.com/googleapis/python-network-connectivity" + +package_root = os.path.abspath(os.path.dirname(__file__)) + +readme_filename = os.path.join(package_root, "README.rst") +with io.open(readme_filename, encoding="utf-8") as readme_file: + readme = readme_file.read() + +packages = [ + package + for package in setuptools.PEP420PackageFinder.find() + if package.startswith("google") +] + +namespaces = ["google", "google.cloud"] + +setuptools.setup( + name=name, + version=version, + description=description, + long_description=readme, + author="Google LLC", + author_email="googleapis-packages@google.com", + license="Apache 2.0", + url=url, + classifiers=[ + release_status, + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Operating System :: OS Independent", + "Topic :: Internet", + ], + platforms="Posix; MacOS X; Windows", + packages=packages, + python_requires=">=3.7", + namespace_packages=namespaces, + install_requires=dependencies, + include_package_data=True, + zip_safe=False, +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.10.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.10.txt new file mode 100644 index 000000000000..ad3f0fa58e2d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.10.txt @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf +grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.11.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.11.txt new file mode 100644 index 000000000000..ad3f0fa58e2d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.11.txt @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf +grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.12.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.12.txt new file mode 100644 index 000000000000..ad3f0fa58e2d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.12.txt @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf +grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.7.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.7.txt new file mode 100644 index 000000000000..2beecf99e0be --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.7.txt @@ -0,0 +1,10 @@ +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file. +# Pin the version to the lower bound. +# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", +# Then this file should have google-cloud-foo==1.14.0 +google-api-core==1.34.0 +proto-plus==1.22.0 +protobuf==3.19.5 +grpc-google-iam-v1==0.12.4 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.8.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.8.txt new file mode 100644 index 000000000000..ad3f0fa58e2d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.8.txt @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf +grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.9.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.9.txt new file mode 100644 index 000000000000..ad3f0fa58e2d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.9.txt @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf +grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/__init__.py new file mode 100644 index 000000000000..1b4db446eb8d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/__init__.py @@ -0,0 +1,16 @@ + +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/__init__.py new file mode 100644 index 000000000000..1b4db446eb8d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/__init__.py @@ -0,0 +1,16 @@ + +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/__init__.py new file mode 100644 index 000000000000..1b4db446eb8d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/__init__.py @@ -0,0 +1,16 @@ + +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/__init__.py new file mode 100644 index 000000000000..1b4db446eb8d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/__init__.py @@ -0,0 +1,16 @@ + +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py new file mode 100644 index 000000000000..f418a466ed1c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py @@ -0,0 +1,8386 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import os +# try/except added for compatibility with python < 3.8 +try: + from unittest import mock + from unittest.mock import AsyncMock # pragma: NO COVER +except ImportError: # pragma: NO COVER + import mock + +import grpc +from grpc.experimental import aio +import math +import pytest +from proto.marshal.rules.dates import DurationRule, TimestampRule +from proto.marshal.rules import wrappers + +from google.api_core import client_options +from google.api_core import exceptions as core_exceptions +from google.api_core import future +from google.api_core import gapic_v1 +from google.api_core import grpc_helpers +from google.api_core import grpc_helpers_async +from google.api_core import operation +from google.api_core import operation_async # type: ignore +from google.api_core import operations_v1 +from google.api_core import path_template +from google.auth import credentials as ga_credentials +from google.auth.exceptions import MutualTLSChannelError +from google.cloud.location import locations_pb2 +from google.cloud.networkconnectivity_v1.services.hub_service import HubServiceAsyncClient +from google.cloud.networkconnectivity_v1.services.hub_service import HubServiceClient +from google.cloud.networkconnectivity_v1.services.hub_service import pagers +from google.cloud.networkconnectivity_v1.services.hub_service import transports +from google.cloud.networkconnectivity_v1.types import common +from google.cloud.networkconnectivity_v1.types import hub +from google.cloud.networkconnectivity_v1.types import hub as gcn_hub +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import options_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from google.oauth2 import service_account +from google.protobuf import empty_pb2 # type: ignore +from google.protobuf import field_mask_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore +import google.auth + + +def client_cert_source_callback(): + return b"cert bytes", b"key bytes" + + +# If default endpoint is localhost, then default mtls endpoint will be the same. +# This method modifies the default endpoint so the client can produce a different +# mtls endpoint for endpoint testing purposes. +def modify_default_endpoint(client): + return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT + + +def test__get_default_mtls_endpoint(): + api_endpoint = "example.googleapis.com" + api_mtls_endpoint = "example.mtls.googleapis.com" + sandbox_endpoint = "example.sandbox.googleapis.com" + sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com" + non_googleapi = "api.example.com" + + assert HubServiceClient._get_default_mtls_endpoint(None) is None + assert HubServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint + assert HubServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint + assert HubServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint + assert HubServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint + assert HubServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi + + +@pytest.mark.parametrize("client_class,transport_name", [ + (HubServiceClient, "grpc"), + (HubServiceAsyncClient, "grpc_asyncio"), +]) +def test_hub_service_client_from_service_account_info(client_class, transport_name): + creds = ga_credentials.AnonymousCredentials() + with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory: + factory.return_value = creds + info = {"valid": True} + client = client_class.from_service_account_info(info, transport=transport_name) + assert client.transport._credentials == creds + assert isinstance(client, client_class) + + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:443' + ) + + +@pytest.mark.parametrize("transport_class,transport_name", [ + (transports.HubServiceGrpcTransport, "grpc"), + (transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), +]) +def test_hub_service_client_service_account_always_use_jwt(transport_class, transport_name): + with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: + creds = service_account.Credentials(None, None, None) + transport = transport_class(credentials=creds, always_use_jwt_access=True) + use_jwt.assert_called_once_with(True) + + with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: + creds = service_account.Credentials(None, None, None) + transport = transport_class(credentials=creds, always_use_jwt_access=False) + use_jwt.assert_not_called() + + +@pytest.mark.parametrize("client_class,transport_name", [ + (HubServiceClient, "grpc"), + (HubServiceAsyncClient, "grpc_asyncio"), +]) +def test_hub_service_client_from_service_account_file(client_class, transport_name): + creds = ga_credentials.AnonymousCredentials() + with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory: + factory.return_value = creds + client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name) + assert client.transport._credentials == creds + assert isinstance(client, client_class) + + client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name) + assert client.transport._credentials == creds + assert isinstance(client, client_class) + + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:443' + ) + + +def test_hub_service_client_get_transport_class(): + transport = HubServiceClient.get_transport_class() + available_transports = [ + transports.HubServiceGrpcTransport, + ] + assert transport in available_transports + + transport = HubServiceClient.get_transport_class("grpc") + assert transport == transports.HubServiceGrpcTransport + + +@pytest.mark.parametrize("client_class,transport_class,transport_name", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc"), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), +]) +@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) +@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) +def test_hub_service_client_client_options(client_class, transport_class, transport_name): + # Check that if channel is provided we won't create a new one. + with mock.patch.object(HubServiceClient, 'get_transport_class') as gtc: + transport = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ) + client = client_class(transport=transport) + gtc.assert_not_called() + + # Check that if channel is provided via str we will create a new one. + with mock.patch.object(HubServiceClient, 'get_transport_class') as gtc: + client = client_class(transport=transport_name) + gtc.assert_called() + + # Check the case api_endpoint is provided. + options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(transport=transport_name, client_options=options) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host="squid.clam.whelk", + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is + # "never". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is + # "always". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_MTLS_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has + # unsupported value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}): + with pytest.raises(MutualTLSChannelError): + client = client_class(transport=transport_name) + + # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}): + with pytest.raises(ValueError): + client = client_class(transport=transport_name) + + # Check the case quota_project_id is provided + options = client_options.ClientOptions(quota_project_id="octopus") + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id="octopus", + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + # Check the case api_endpoint is provided + options = client_options.ClientOptions(api_audience="https://language.googleapis.com") + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience="https://language.googleapis.com" + ) + +@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", "true"), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"), + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", "false"), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"), +]) +@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) +@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) +@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}) +def test_hub_service_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env): + # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default + # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists. + + # Check the case client_cert_source is provided. Whether client cert is used depends on + # GOOGLE_API_USE_CLIENT_CERTIFICATE value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): + options = client_options.ClientOptions(client_cert_source=client_cert_source_callback) + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + + if use_client_cert_env == "false": + expected_client_cert_source = None + expected_host = client.DEFAULT_ENDPOINT + else: + expected_client_cert_source = client_cert_source_callback + expected_host = client.DEFAULT_MTLS_ENDPOINT + + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=expected_host, + scopes=None, + client_cert_source_for_mtls=expected_client_cert_source, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case ADC client cert is provided. Whether client cert is used depends on + # GOOGLE_API_USE_CLIENT_CERTIFICATE value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): + with mock.patch.object(transport_class, '__init__') as patched: + with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): + with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback): + if use_client_cert_env == "false": + expected_host = client.DEFAULT_ENDPOINT + expected_client_cert_source = None + else: + expected_host = client.DEFAULT_MTLS_ENDPOINT + expected_client_cert_source = client_cert_source_callback + + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=expected_host, + scopes=None, + client_cert_source_for_mtls=expected_client_cert_source, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case client_cert_source and ADC client cert are not provided. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): + with mock.patch.object(transport_class, '__init__') as patched: + with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False): + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + +@pytest.mark.parametrize("client_class", [ + HubServiceClient, HubServiceAsyncClient +]) +@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) +@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) +def test_hub_service_client_get_mtls_endpoint_and_cert_source(client_class): + mock_client_cert_source = mock.Mock() + + # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): + mock_api_endpoint = "foo" + options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) + assert api_endpoint == mock_api_endpoint + assert cert_source == mock_client_cert_source + + # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}): + mock_client_cert_source = mock.Mock() + mock_api_endpoint = "foo" + options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) + assert api_endpoint == mock_api_endpoint + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_ENDPOINT + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): + with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_ENDPOINT + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): + with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): + with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT + assert cert_source == mock_client_cert_source + + +@pytest.mark.parametrize("client_class,transport_class,transport_name", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc"), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), +]) +def test_hub_service_client_client_options_scopes(client_class, transport_class, transport_name): + # Check the case scopes are provided. + options = client_options.ClientOptions( + scopes=["1", "2"], + ) + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=["1", "2"], + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + +@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", grpc_helpers), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), +]) +def test_hub_service_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers): + # Check the case credentials file is provided. + options = client_options.ClientOptions( + credentials_file="credentials.json" + ) + + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file="credentials.json", + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + +def test_hub_service_client_client_options_from_dict(): + with mock.patch('google.cloud.networkconnectivity_v1.services.hub_service.transports.HubServiceGrpcTransport.__init__') as grpc_transport: + grpc_transport.return_value = None + client = HubServiceClient( + client_options={'api_endpoint': 'squid.clam.whelk'} + ) + grpc_transport.assert_called_once_with( + credentials=None, + credentials_file=None, + host="squid.clam.whelk", + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + +@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", grpc_helpers), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), +]) +def test_hub_service_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers): + # Check the case credentials file is provided. + options = client_options.ClientOptions( + credentials_file="credentials.json" + ) + + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file="credentials.json", + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # test that the credentials from file are saved and used as the credentials. + with mock.patch.object( + google.auth, "load_credentials_from_file", autospec=True + ) as load_creds, mock.patch.object( + google.auth, "default", autospec=True + ) as adc, mock.patch.object( + grpc_helpers, "create_channel" + ) as create_channel: + creds = ga_credentials.AnonymousCredentials() + file_creds = ga_credentials.AnonymousCredentials() + load_creds.return_value = (file_creds, None) + adc.return_value = (creds, None) + client = client_class(client_options=options, transport=transport_name) + create_channel.assert_called_with( + "networkconnectivity.googleapis.com:443", + credentials=file_creds, + credentials_file=None, + quota_project_id=None, + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + scopes=None, + default_host="networkconnectivity.googleapis.com", + ssl_credentials=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + +@pytest.mark.parametrize("request_type", [ + hub.ListHubsRequest, + dict, +]) +def test_list_hubs(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListHubsResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + ) + response = client.list_hubs(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListHubsRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListHubsPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +def test_list_hubs_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + client.list_hubs() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListHubsRequest() + +@pytest.mark.asyncio +async def test_list_hubs_async(transport: str = 'grpc_asyncio', request_type=hub.ListHubsRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + )) + response = await client.list_hubs(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListHubsRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListHubsAsyncPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +@pytest.mark.asyncio +async def test_list_hubs_async_from_dict(): + await test_list_hubs_async(request_type=dict) + + +def test_list_hubs_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListHubsRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + call.return_value = hub.ListHubsResponse() + client.list_hubs(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_list_hubs_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListHubsRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse()) + await client.list_hubs(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_list_hubs_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListHubsResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_hubs( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + + +def test_list_hubs_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_hubs( + hub.ListHubsRequest(), + parent='parent_value', + ) + +@pytest.mark.asyncio +async def test_list_hubs_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListHubsResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_hubs( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_list_hubs_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_hubs( + hub.ListHubsRequest(), + parent='parent_value', + ) + + +def test_list_hubs_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + hub.Hub(), + ], + next_page_token='abc', + ), + hub.ListHubsResponse( + hubs=[], + next_page_token='def', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + ], + next_page_token='ghi', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ('parent', ''), + )), + ) + pager = client.list_hubs(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Hub) + for i in results) +def test_list_hubs_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + hub.Hub(), + ], + next_page_token='abc', + ), + hub.ListHubsResponse( + hubs=[], + next_page_token='def', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + ], + next_page_token='ghi', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + ], + ), + RuntimeError, + ) + pages = list(client.list_hubs(request={}).pages) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.asyncio +async def test_list_hubs_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + hub.Hub(), + ], + next_page_token='abc', + ), + hub.ListHubsResponse( + hubs=[], + next_page_token='def', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + ], + next_page_token='ghi', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_hubs(request={},) + assert async_pager.next_page_token == 'abc' + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Hub) + for i in responses) + + +@pytest.mark.asyncio +async def test_list_hubs_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + hub.Hub(), + ], + next_page_token='abc', + ), + hub.ListHubsResponse( + hubs=[], + next_page_token='def', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + ], + next_page_token='ghi', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_hubs(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.parametrize("request_type", [ + hub.GetHubRequest, + dict, +]) +def test_get_hub(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Hub( + name='name_value', + description='description_value', + unique_id='unique_id_value', + state=hub.State.CREATING, + route_tables=['route_tables_value'], + ) + response = client.get_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Hub) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.unique_id == 'unique_id_value' + assert response.state == hub.State.CREATING + assert response.route_tables == ['route_tables_value'] + + +def test_get_hub_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + client.get_hub() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetHubRequest() + +@pytest.mark.asyncio +async def test_get_hub_async(transport: str = 'grpc_asyncio', request_type=hub.GetHubRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub( + name='name_value', + description='description_value', + unique_id='unique_id_value', + state=hub.State.CREATING, + route_tables=['route_tables_value'], + )) + response = await client.get_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Hub) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.unique_id == 'unique_id_value' + assert response.state == hub.State.CREATING + assert response.route_tables == ['route_tables_value'] + + +@pytest.mark.asyncio +async def test_get_hub_async_from_dict(): + await test_get_hub_async(request_type=dict) + + +def test_get_hub_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetHubRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + call.return_value = hub.Hub() + client.get_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_get_hub_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetHubRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub()) + await client.get_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_get_hub_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Hub() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_hub( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_get_hub_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_hub( + hub.GetHubRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_get_hub_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Hub() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_hub( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_get_hub_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_hub( + hub.GetHubRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + gcn_hub.CreateHubRequest, + dict, +]) +def test_create_hub(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.create_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.CreateHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_create_hub_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + client.create_hub() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.CreateHubRequest() + +@pytest.mark.asyncio +async def test_create_hub_async(transport: str = 'grpc_asyncio', request_type=gcn_hub.CreateHubRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.create_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.CreateHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_create_hub_async_from_dict(): + await test_create_hub_async(request_type=dict) + + +def test_create_hub_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = gcn_hub.CreateHubRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.create_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_create_hub_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = gcn_hub.CreateHubRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.create_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_create_hub_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.create_hub( + parent='parent_value', + hub=gcn_hub.Hub(name='name_value'), + hub_id='hub_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].hub + mock_val = gcn_hub.Hub(name='name_value') + assert arg == mock_val + arg = args[0].hub_id + mock_val = 'hub_id_value' + assert arg == mock_val + + +def test_create_hub_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.create_hub( + gcn_hub.CreateHubRequest(), + parent='parent_value', + hub=gcn_hub.Hub(name='name_value'), + hub_id='hub_id_value', + ) + +@pytest.mark.asyncio +async def test_create_hub_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.create_hub( + parent='parent_value', + hub=gcn_hub.Hub(name='name_value'), + hub_id='hub_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].hub + mock_val = gcn_hub.Hub(name='name_value') + assert arg == mock_val + arg = args[0].hub_id + mock_val = 'hub_id_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_create_hub_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.create_hub( + gcn_hub.CreateHubRequest(), + parent='parent_value', + hub=gcn_hub.Hub(name='name_value'), + hub_id='hub_id_value', + ) + + +@pytest.mark.parametrize("request_type", [ + gcn_hub.UpdateHubRequest, + dict, +]) +def test_update_hub(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.update_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.UpdateHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_update_hub_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + client.update_hub() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.UpdateHubRequest() + +@pytest.mark.asyncio +async def test_update_hub_async(transport: str = 'grpc_asyncio', request_type=gcn_hub.UpdateHubRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.update_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.UpdateHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_update_hub_async_from_dict(): + await test_update_hub_async(request_type=dict) + + +def test_update_hub_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = gcn_hub.UpdateHubRequest() + + request.hub.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.update_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'hub.name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_update_hub_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = gcn_hub.UpdateHubRequest() + + request.hub.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.update_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'hub.name=name_value', + ) in kw['metadata'] + + +def test_update_hub_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.update_hub( + hub=gcn_hub.Hub(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].hub + mock_val = gcn_hub.Hub(name='name_value') + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) + assert arg == mock_val + + +def test_update_hub_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.update_hub( + gcn_hub.UpdateHubRequest(), + hub=gcn_hub.Hub(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + +@pytest.mark.asyncio +async def test_update_hub_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.update_hub( + hub=gcn_hub.Hub(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].hub + mock_val = gcn_hub.Hub(name='name_value') + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) + assert arg == mock_val + +@pytest.mark.asyncio +async def test_update_hub_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.update_hub( + gcn_hub.UpdateHubRequest(), + hub=gcn_hub.Hub(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + +@pytest.mark.parametrize("request_type", [ + hub.DeleteHubRequest, + dict, +]) +def test_delete_hub(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.delete_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_delete_hub_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + client.delete_hub() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteHubRequest() + +@pytest.mark.asyncio +async def test_delete_hub_async(transport: str = 'grpc_asyncio', request_type=hub.DeleteHubRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.delete_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_delete_hub_async_from_dict(): + await test_delete_hub_async(request_type=dict) + + +def test_delete_hub_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteHubRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.delete_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_delete_hub_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteHubRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.delete_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_delete_hub_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.delete_hub( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_delete_hub_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.delete_hub( + hub.DeleteHubRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_delete_hub_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.delete_hub( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_delete_hub_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.delete_hub( + hub.DeleteHubRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.ListHubSpokesRequest, + dict, +]) +def test_list_hub_spokes(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListHubSpokesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + ) + response = client.list_hub_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListHubSpokesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListHubSpokesPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +def test_list_hub_spokes_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__') as call: + client.list_hub_spokes() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListHubSpokesRequest() + +@pytest.mark.asyncio +async def test_list_hub_spokes_async(transport: str = 'grpc_asyncio', request_type=hub.ListHubSpokesRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubSpokesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + )) + response = await client.list_hub_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListHubSpokesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListHubSpokesAsyncPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +@pytest.mark.asyncio +async def test_list_hub_spokes_async_from_dict(): + await test_list_hub_spokes_async(request_type=dict) + + +def test_list_hub_spokes_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListHubSpokesRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__') as call: + call.return_value = hub.ListHubSpokesResponse() + client.list_hub_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_list_hub_spokes_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListHubSpokesRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubSpokesResponse()) + await client.list_hub_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_list_hub_spokes_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListHubSpokesResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_hub_spokes( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_list_hub_spokes_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_hub_spokes( + hub.ListHubSpokesRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_list_hub_spokes_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListHubSpokesResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubSpokesResponse()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_hub_spokes( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_list_hub_spokes_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_hub_spokes( + hub.ListHubSpokesRequest(), + name='name_value', + ) + + +def test_list_hub_spokes_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListHubSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ('name', ''), + )), + ) + pager = client.list_hub_spokes(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Spoke) + for i in results) +def test_list_hub_spokes_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListHubSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + pages = list(client.list_hub_spokes(request={}).pages) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.asyncio +async def test_list_hub_spokes_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListHubSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_hub_spokes(request={},) + assert async_pager.next_page_token == 'abc' + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Spoke) + for i in responses) + + +@pytest.mark.asyncio +async def test_list_hub_spokes_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hub_spokes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListHubSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListHubSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_hub_spokes(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.parametrize("request_type", [ + hub.ListSpokesRequest, + dict, +]) +def test_list_spokes(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListSpokesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + ) + response = client.list_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListSpokesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListSpokesPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +def test_list_spokes_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + client.list_spokes() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListSpokesRequest() + +@pytest.mark.asyncio +async def test_list_spokes_async(transport: str = 'grpc_asyncio', request_type=hub.ListSpokesRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + )) + response = await client.list_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListSpokesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListSpokesAsyncPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +@pytest.mark.asyncio +async def test_list_spokes_async_from_dict(): + await test_list_spokes_async(request_type=dict) + + +def test_list_spokes_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListSpokesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + call.return_value = hub.ListSpokesResponse() + client.list_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_list_spokes_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListSpokesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse()) + await client.list_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_list_spokes_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListSpokesResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_spokes( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + + +def test_list_spokes_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_spokes( + hub.ListSpokesRequest(), + parent='parent_value', + ) + +@pytest.mark.asyncio +async def test_list_spokes_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListSpokesResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_spokes( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_list_spokes_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_spokes( + hub.ListSpokesRequest(), + parent='parent_value', + ) + + +def test_list_spokes_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ('parent', ''), + )), + ) + pager = client.list_spokes(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Spoke) + for i in results) +def test_list_spokes_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + pages = list(client.list_spokes(request={}).pages) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.asyncio +async def test_list_spokes_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_spokes(request={},) + assert async_pager.next_page_token == 'abc' + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Spoke) + for i in responses) + + +@pytest.mark.asyncio +async def test_list_spokes_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_spokes(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.parametrize("request_type", [ + hub.GetSpokeRequest, + dict, +]) +def test_get_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Spoke( + name='name_value', + description='description_value', + hub='hub_value', + group='group_value', + unique_id='unique_id_value', + state=hub.State.CREATING, + spoke_type=hub.SpokeType.VPN_TUNNEL, + ) + response = client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Spoke) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.hub == 'hub_value' + assert response.group == 'group_value' + assert response.unique_id == 'unique_id_value' + assert response.state == hub.State.CREATING + assert response.spoke_type == hub.SpokeType.VPN_TUNNEL + + +def test_get_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + client.get_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetSpokeRequest() + +@pytest.mark.asyncio +async def test_get_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.GetSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke( + name='name_value', + description='description_value', + hub='hub_value', + group='group_value', + unique_id='unique_id_value', + state=hub.State.CREATING, + spoke_type=hub.SpokeType.VPN_TUNNEL, + )) + response = await client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Spoke) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.hub == 'hub_value' + assert response.group == 'group_value' + assert response.unique_id == 'unique_id_value' + assert response.state == hub.State.CREATING + assert response.spoke_type == hub.SpokeType.VPN_TUNNEL + + +@pytest.mark.asyncio +async def test_get_spoke_async_from_dict(): + await test_get_spoke_async(request_type=dict) + + +def test_get_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + call.return_value = hub.Spoke() + client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_get_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) + await client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_get_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Spoke() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_spoke( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_get_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_spoke( + hub.GetSpokeRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_get_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Spoke() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_spoke( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_get_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_spoke( + hub.GetSpokeRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.CreateSpokeRequest, + dict, +]) +def test_create_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.CreateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_create_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + client.create_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.CreateSpokeRequest() + +@pytest.mark.asyncio +async def test_create_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.CreateSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.CreateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_create_spoke_async_from_dict(): + await test_create_spoke_async(request_type=dict) + + +def test_create_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.CreateSpokeRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_create_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.CreateSpokeRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_create_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.create_spoke( + parent='parent_value', + spoke=hub.Spoke(name='name_value'), + spoke_id='spoke_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].spoke + mock_val = hub.Spoke(name='name_value') + assert arg == mock_val + arg = args[0].spoke_id + mock_val = 'spoke_id_value' + assert arg == mock_val + + +def test_create_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.create_spoke( + hub.CreateSpokeRequest(), + parent='parent_value', + spoke=hub.Spoke(name='name_value'), + spoke_id='spoke_id_value', + ) + +@pytest.mark.asyncio +async def test_create_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.create_spoke( + parent='parent_value', + spoke=hub.Spoke(name='name_value'), + spoke_id='spoke_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].spoke + mock_val = hub.Spoke(name='name_value') + assert arg == mock_val + arg = args[0].spoke_id + mock_val = 'spoke_id_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_create_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.create_spoke( + hub.CreateSpokeRequest(), + parent='parent_value', + spoke=hub.Spoke(name='name_value'), + spoke_id='spoke_id_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.UpdateSpokeRequest, + dict, +]) +def test_update_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.UpdateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_update_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + client.update_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.UpdateSpokeRequest() + +@pytest.mark.asyncio +async def test_update_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.UpdateSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.UpdateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_update_spoke_async_from_dict(): + await test_update_spoke_async(request_type=dict) + + +def test_update_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.UpdateSpokeRequest() + + request.spoke.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'spoke.name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_update_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.UpdateSpokeRequest() + + request.spoke.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'spoke.name=name_value', + ) in kw['metadata'] + + +def test_update_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.update_spoke( + spoke=hub.Spoke(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].spoke + mock_val = hub.Spoke(name='name_value') + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) + assert arg == mock_val + + +def test_update_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.update_spoke( + hub.UpdateSpokeRequest(), + spoke=hub.Spoke(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + +@pytest.mark.asyncio +async def test_update_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.update_spoke( + spoke=hub.Spoke(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].spoke + mock_val = hub.Spoke(name='name_value') + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) + assert arg == mock_val + +@pytest.mark.asyncio +async def test_update_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.update_spoke( + hub.UpdateSpokeRequest(), + spoke=hub.Spoke(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + +@pytest.mark.parametrize("request_type", [ + hub.RejectHubSpokeRequest, + dict, +]) +def test_reject_hub_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.reject_hub_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.reject_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.RejectHubSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_reject_hub_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.reject_hub_spoke), + '__call__') as call: + client.reject_hub_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.RejectHubSpokeRequest() + +@pytest.mark.asyncio +async def test_reject_hub_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.RejectHubSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.reject_hub_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.reject_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.RejectHubSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_reject_hub_spoke_async_from_dict(): + await test_reject_hub_spoke_async(request_type=dict) + + +def test_reject_hub_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.RejectHubSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.reject_hub_spoke), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.reject_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_reject_hub_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.RejectHubSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.reject_hub_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.reject_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_reject_hub_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.reject_hub_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.reject_hub_spoke( + name='name_value', + spoke_uri='spoke_uri_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + arg = args[0].spoke_uri + mock_val = 'spoke_uri_value' + assert arg == mock_val + + +def test_reject_hub_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.reject_hub_spoke( + hub.RejectHubSpokeRequest(), + name='name_value', + spoke_uri='spoke_uri_value', + ) + +@pytest.mark.asyncio +async def test_reject_hub_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.reject_hub_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.reject_hub_spoke( + name='name_value', + spoke_uri='spoke_uri_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + arg = args[0].spoke_uri + mock_val = 'spoke_uri_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_reject_hub_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.reject_hub_spoke( + hub.RejectHubSpokeRequest(), + name='name_value', + spoke_uri='spoke_uri_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.AcceptHubSpokeRequest, + dict, +]) +def test_accept_hub_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.accept_hub_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.accept_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.AcceptHubSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_accept_hub_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.accept_hub_spoke), + '__call__') as call: + client.accept_hub_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.AcceptHubSpokeRequest() + +@pytest.mark.asyncio +async def test_accept_hub_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.AcceptHubSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.accept_hub_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.accept_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.AcceptHubSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_accept_hub_spoke_async_from_dict(): + await test_accept_hub_spoke_async(request_type=dict) + + +def test_accept_hub_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.AcceptHubSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.accept_hub_spoke), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.accept_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_accept_hub_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.AcceptHubSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.accept_hub_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.accept_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_accept_hub_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.accept_hub_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.accept_hub_spoke( + name='name_value', + spoke_uri='spoke_uri_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + arg = args[0].spoke_uri + mock_val = 'spoke_uri_value' + assert arg == mock_val + + +def test_accept_hub_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.accept_hub_spoke( + hub.AcceptHubSpokeRequest(), + name='name_value', + spoke_uri='spoke_uri_value', + ) + +@pytest.mark.asyncio +async def test_accept_hub_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.accept_hub_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.accept_hub_spoke( + name='name_value', + spoke_uri='spoke_uri_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + arg = args[0].spoke_uri + mock_val = 'spoke_uri_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_accept_hub_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.accept_hub_spoke( + hub.AcceptHubSpokeRequest(), + name='name_value', + spoke_uri='spoke_uri_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.DeleteSpokeRequest, + dict, +]) +def test_delete_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_delete_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + client.delete_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteSpokeRequest() + +@pytest.mark.asyncio +async def test_delete_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.DeleteSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_delete_spoke_async_from_dict(): + await test_delete_spoke_async(request_type=dict) + + +def test_delete_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_delete_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_delete_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.delete_spoke( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_delete_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.delete_spoke( + hub.DeleteSpokeRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_delete_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.delete_spoke( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_delete_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.delete_spoke( + hub.DeleteSpokeRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.GetRouteTableRequest, + dict, +]) +def test_get_route_table(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route_table), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.RouteTable( + name='name_value', + description='description_value', + uid='uid_value', + state=hub.State.CREATING, + ) + response = client.get_route_table(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteTableRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.RouteTable) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.uid == 'uid_value' + assert response.state == hub.State.CREATING + + +def test_get_route_table_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route_table), + '__call__') as call: + client.get_route_table() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteTableRequest() + +@pytest.mark.asyncio +async def test_get_route_table_async(transport: str = 'grpc_asyncio', request_type=hub.GetRouteTableRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route_table), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.RouteTable( + name='name_value', + description='description_value', + uid='uid_value', + state=hub.State.CREATING, + )) + response = await client.get_route_table(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteTableRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.RouteTable) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.uid == 'uid_value' + assert response.state == hub.State.CREATING + + +@pytest.mark.asyncio +async def test_get_route_table_async_from_dict(): + await test_get_route_table_async(request_type=dict) + + +def test_get_route_table_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetRouteTableRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route_table), + '__call__') as call: + call.return_value = hub.RouteTable() + client.get_route_table(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_get_route_table_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetRouteTableRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route_table), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.RouteTable()) + await client.get_route_table(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_get_route_table_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route_table), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.RouteTable() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_route_table( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_get_route_table_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_route_table( + hub.GetRouteTableRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_get_route_table_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route_table), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.RouteTable() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.RouteTable()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_route_table( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_get_route_table_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_route_table( + hub.GetRouteTableRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.GetRouteRequest, + dict, +]) +def test_get_route(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Route( + name='name_value', + ip_cidr_range='ip_cidr_range_value', + type_=hub.RouteType.VPC_PRIMARY_SUBNET, + description='description_value', + uid='uid_value', + state=hub.State.CREATING, + spoke='spoke_value', + location='location_value', + ) + response = client.get_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Route) + assert response.name == 'name_value' + assert response.ip_cidr_range == 'ip_cidr_range_value' + assert response.type_ == hub.RouteType.VPC_PRIMARY_SUBNET + assert response.description == 'description_value' + assert response.uid == 'uid_value' + assert response.state == hub.State.CREATING + assert response.spoke == 'spoke_value' + assert response.location == 'location_value' + + +def test_get_route_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route), + '__call__') as call: + client.get_route() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteRequest() + +@pytest.mark.asyncio +async def test_get_route_async(transport: str = 'grpc_asyncio', request_type=hub.GetRouteRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Route( + name='name_value', + ip_cidr_range='ip_cidr_range_value', + type_=hub.RouteType.VPC_PRIMARY_SUBNET, + description='description_value', + uid='uid_value', + state=hub.State.CREATING, + spoke='spoke_value', + location='location_value', + )) + response = await client.get_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Route) + assert response.name == 'name_value' + assert response.ip_cidr_range == 'ip_cidr_range_value' + assert response.type_ == hub.RouteType.VPC_PRIMARY_SUBNET + assert response.description == 'description_value' + assert response.uid == 'uid_value' + assert response.state == hub.State.CREATING + assert response.spoke == 'spoke_value' + assert response.location == 'location_value' + + +@pytest.mark.asyncio +async def test_get_route_async_from_dict(): + await test_get_route_async(request_type=dict) + + +def test_get_route_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetRouteRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route), + '__call__') as call: + call.return_value = hub.Route() + client.get_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_get_route_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetRouteRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Route()) + await client.get_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_get_route_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Route() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_route( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_get_route_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_route( + hub.GetRouteRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_get_route_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Route() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Route()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_route( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_get_route_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_route( + hub.GetRouteRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.ListRoutesRequest, + dict, +]) +def test_list_routes(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListRoutesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + ) + response = client.list_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListRoutesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListRoutesPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +def test_list_routes_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__') as call: + client.list_routes() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListRoutesRequest() + +@pytest.mark.asyncio +async def test_list_routes_async(transport: str = 'grpc_asyncio', request_type=hub.ListRoutesRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRoutesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + )) + response = await client.list_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListRoutesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListRoutesAsyncPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +@pytest.mark.asyncio +async def test_list_routes_async_from_dict(): + await test_list_routes_async(request_type=dict) + + +def test_list_routes_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListRoutesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__') as call: + call.return_value = hub.ListRoutesResponse() + client.list_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_list_routes_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListRoutesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRoutesResponse()) + await client.list_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_list_routes_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListRoutesResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_routes( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + + +def test_list_routes_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_routes( + hub.ListRoutesRequest(), + parent='parent_value', + ) + +@pytest.mark.asyncio +async def test_list_routes_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListRoutesResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRoutesResponse()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_routes( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_list_routes_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_routes( + hub.ListRoutesRequest(), + parent='parent_value', + ) + + +def test_list_routes_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + hub.Route(), + ], + next_page_token='abc', + ), + hub.ListRoutesResponse( + routes=[], + next_page_token='def', + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + ], + next_page_token='ghi', + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ('parent', ''), + )), + ) + pager = client.list_routes(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Route) + for i in results) +def test_list_routes_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + hub.Route(), + ], + next_page_token='abc', + ), + hub.ListRoutesResponse( + routes=[], + next_page_token='def', + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + ], + next_page_token='ghi', + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + ], + ), + RuntimeError, + ) + pages = list(client.list_routes(request={}).pages) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.asyncio +async def test_list_routes_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + hub.Route(), + ], + next_page_token='abc', + ), + hub.ListRoutesResponse( + routes=[], + next_page_token='def', + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + ], + next_page_token='ghi', + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_routes(request={},) + assert async_pager.next_page_token == 'abc' + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Route) + for i in responses) + + +@pytest.mark.asyncio +async def test_list_routes_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + hub.Route(), + ], + next_page_token='abc', + ), + hub.ListRoutesResponse( + routes=[], + next_page_token='def', + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + ], + next_page_token='ghi', + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_routes(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.parametrize("request_type", [ + hub.ListRouteTablesRequest, + dict, +]) +def test_list_route_tables(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListRouteTablesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + ) + response = client.list_route_tables(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListRouteTablesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListRouteTablesPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +def test_list_route_tables_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__') as call: + client.list_route_tables() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListRouteTablesRequest() + +@pytest.mark.asyncio +async def test_list_route_tables_async(transport: str = 'grpc_asyncio', request_type=hub.ListRouteTablesRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRouteTablesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + )) + response = await client.list_route_tables(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListRouteTablesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListRouteTablesAsyncPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +@pytest.mark.asyncio +async def test_list_route_tables_async_from_dict(): + await test_list_route_tables_async(request_type=dict) + + +def test_list_route_tables_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListRouteTablesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__') as call: + call.return_value = hub.ListRouteTablesResponse() + client.list_route_tables(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_list_route_tables_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListRouteTablesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRouteTablesResponse()) + await client.list_route_tables(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_list_route_tables_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListRouteTablesResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_route_tables( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + + +def test_list_route_tables_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_route_tables( + hub.ListRouteTablesRequest(), + parent='parent_value', + ) + +@pytest.mark.asyncio +async def test_list_route_tables_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListRouteTablesResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRouteTablesResponse()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_route_tables( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_list_route_tables_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_route_tables( + hub.ListRouteTablesRequest(), + parent='parent_value', + ) + + +def test_list_route_tables_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + hub.RouteTable(), + ], + next_page_token='abc', + ), + hub.ListRouteTablesResponse( + route_tables=[], + next_page_token='def', + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + ], + next_page_token='ghi', + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ('parent', ''), + )), + ) + pager = client.list_route_tables(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.RouteTable) + for i in results) +def test_list_route_tables_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + hub.RouteTable(), + ], + next_page_token='abc', + ), + hub.ListRouteTablesResponse( + route_tables=[], + next_page_token='def', + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + ], + next_page_token='ghi', + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + ], + ), + RuntimeError, + ) + pages = list(client.list_route_tables(request={}).pages) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.asyncio +async def test_list_route_tables_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + hub.RouteTable(), + ], + next_page_token='abc', + ), + hub.ListRouteTablesResponse( + route_tables=[], + next_page_token='def', + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + ], + next_page_token='ghi', + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_route_tables(request={},) + assert async_pager.next_page_token == 'abc' + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.RouteTable) + for i in responses) + + +@pytest.mark.asyncio +async def test_list_route_tables_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + hub.RouteTable(), + ], + next_page_token='abc', + ), + hub.ListRouteTablesResponse( + route_tables=[], + next_page_token='def', + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + ], + next_page_token='ghi', + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_route_tables(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.parametrize("request_type", [ + hub.GetGroupRequest, + dict, +]) +def test_get_group(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_group), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Group( + name='name_value', + description='description_value', + uid='uid_value', + state=hub.State.CREATING, + ) + response = client.get_group(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetGroupRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Group) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.uid == 'uid_value' + assert response.state == hub.State.CREATING + + +def test_get_group_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_group), + '__call__') as call: + client.get_group() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetGroupRequest() + +@pytest.mark.asyncio +async def test_get_group_async(transport: str = 'grpc_asyncio', request_type=hub.GetGroupRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_group), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Group( + name='name_value', + description='description_value', + uid='uid_value', + state=hub.State.CREATING, + )) + response = await client.get_group(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetGroupRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Group) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.uid == 'uid_value' + assert response.state == hub.State.CREATING + + +@pytest.mark.asyncio +async def test_get_group_async_from_dict(): + await test_get_group_async(request_type=dict) + + +def test_get_group_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetGroupRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_group), + '__call__') as call: + call.return_value = hub.Group() + client.get_group(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_get_group_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetGroupRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_group), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Group()) + await client.get_group(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_get_group_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_group), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Group() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_group( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_get_group_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_group( + hub.GetGroupRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_get_group_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_group), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Group() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Group()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_group( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_get_group_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_group( + hub.GetGroupRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.ListGroupsRequest, + dict, +]) +def test_list_groups(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListGroupsResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + ) + response = client.list_groups(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListGroupsRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListGroupsPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +def test_list_groups_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__') as call: + client.list_groups() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListGroupsRequest() + +@pytest.mark.asyncio +async def test_list_groups_async(transport: str = 'grpc_asyncio', request_type=hub.ListGroupsRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListGroupsResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + )) + response = await client.list_groups(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListGroupsRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListGroupsAsyncPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +@pytest.mark.asyncio +async def test_list_groups_async_from_dict(): + await test_list_groups_async(request_type=dict) + + +def test_list_groups_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListGroupsRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__') as call: + call.return_value = hub.ListGroupsResponse() + client.list_groups(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_list_groups_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListGroupsRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListGroupsResponse()) + await client.list_groups(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_list_groups_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListGroupsResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_groups( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + + +def test_list_groups_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_groups( + hub.ListGroupsRequest(), + parent='parent_value', + ) + +@pytest.mark.asyncio +async def test_list_groups_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListGroupsResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListGroupsResponse()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_groups( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_list_groups_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_groups( + hub.ListGroupsRequest(), + parent='parent_value', + ) + + +def test_list_groups_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + hub.Group(), + ], + next_page_token='abc', + ), + hub.ListGroupsResponse( + groups=[], + next_page_token='def', + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + ], + next_page_token='ghi', + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ('parent', ''), + )), + ) + pager = client.list_groups(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Group) + for i in results) +def test_list_groups_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + hub.Group(), + ], + next_page_token='abc', + ), + hub.ListGroupsResponse( + groups=[], + next_page_token='def', + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + ], + next_page_token='ghi', + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + ], + ), + RuntimeError, + ) + pages = list(client.list_groups(request={}).pages) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.asyncio +async def test_list_groups_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + hub.Group(), + ], + next_page_token='abc', + ), + hub.ListGroupsResponse( + groups=[], + next_page_token='def', + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + ], + next_page_token='ghi', + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_groups(request={},) + assert async_pager.next_page_token == 'abc' + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Group) + for i in responses) + + +@pytest.mark.asyncio +async def test_list_groups_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + hub.Group(), + ], + next_page_token='abc', + ), + hub.ListGroupsResponse( + groups=[], + next_page_token='def', + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + ], + next_page_token='ghi', + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_groups(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + + +def test_credentials_transport_error(): + # It is an error to provide credentials and a transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # It is an error to provide a credentials file and a transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = HubServiceClient( + client_options={"credentials_file": "credentials.json"}, + transport=transport, + ) + + # It is an error to provide an api_key and a transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + options = client_options.ClientOptions() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = HubServiceClient( + client_options=options, + transport=transport, + ) + + # It is an error to provide an api_key and a credential. + options = mock.Mock() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = HubServiceClient( + client_options=options, + credentials=ga_credentials.AnonymousCredentials() + ) + + # It is an error to provide scopes and a transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = HubServiceClient( + client_options={"scopes": ["1", "2"]}, + transport=transport, + ) + + +def test_transport_instance(): + # A client may be instantiated with a custom transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + client = HubServiceClient(transport=transport) + assert client.transport is transport + +def test_transport_get_channel(): + # A client may be instantiated with a custom transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + channel = transport.grpc_channel + assert channel + + transport = transports.HubServiceGrpcAsyncIOTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + channel = transport.grpc_channel + assert channel + +@pytest.mark.parametrize("transport_class", [ + transports.HubServiceGrpcTransport, + transports.HubServiceGrpcAsyncIOTransport, +]) +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() + +@pytest.mark.parametrize("transport_name", [ + "grpc", +]) +def test_transport_kind(transport_name): + transport = HubServiceClient.get_transport_class(transport_name)( + credentials=ga_credentials.AnonymousCredentials(), + ) + assert transport.kind == transport_name + +def test_transport_grpc_default(): + # A client should use the gRPC transport by default. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + assert isinstance( + client.transport, + transports.HubServiceGrpcTransport, + ) + +def test_hub_service_base_transport_error(): + # Passing both a credentials object and credentials_file should raise an error + with pytest.raises(core_exceptions.DuplicateCredentialArgs): + transport = transports.HubServiceTransport( + credentials=ga_credentials.AnonymousCredentials(), + credentials_file="credentials.json" + ) + + +def test_hub_service_base_transport(): + # Instantiate the base transport. + with mock.patch('google.cloud.networkconnectivity_v1.services.hub_service.transports.HubServiceTransport.__init__') as Transport: + Transport.return_value = None + transport = transports.HubServiceTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Every method on the transport should just blindly + # raise NotImplementedError. + methods = ( + 'list_hubs', + 'get_hub', + 'create_hub', + 'update_hub', + 'delete_hub', + 'list_hub_spokes', + 'list_spokes', + 'get_spoke', + 'create_spoke', + 'update_spoke', + 'reject_hub_spoke', + 'accept_hub_spoke', + 'delete_spoke', + 'get_route_table', + 'get_route', + 'list_routes', + 'list_route_tables', + 'get_group', + 'list_groups', + 'set_iam_policy', + 'get_iam_policy', + 'test_iam_permissions', + 'get_location', + 'list_locations', + 'get_operation', + 'cancel_operation', + 'delete_operation', + 'list_operations', + ) + for method in methods: + with pytest.raises(NotImplementedError): + getattr(transport, method)(request=object()) + + with pytest.raises(NotImplementedError): + transport.close() + + # Additionally, the LRO client (a property) should + # also raise NotImplementedError + with pytest.raises(NotImplementedError): + transport.operations_client + + # Catch all for all remaining methods and properties + remainder = [ + 'kind', + ] + for r in remainder: + with pytest.raises(NotImplementedError): + getattr(transport, r)() + + +def test_hub_service_base_transport_with_credentials_file(): + # Instantiate the base transport with a credentials file + with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.networkconnectivity_v1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages') as Transport: + Transport.return_value = None + load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) + transport = transports.HubServiceTransport( + credentials_file="credentials.json", + quota_project_id="octopus", + ) + load_creds.assert_called_once_with("credentials.json", + scopes=None, + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + quota_project_id="octopus", + ) + + +def test_hub_service_base_transport_with_adc(): + # Test the default credentials are used if credentials and credentials_file are None. + with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.networkconnectivity_v1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages') as Transport: + Transport.return_value = None + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + transport = transports.HubServiceTransport() + adc.assert_called_once() + + +def test_hub_service_auth_adc(): + # If no credentials are provided, we should use ADC credentials. + with mock.patch.object(google.auth, 'default', autospec=True) as adc: + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + HubServiceClient() + adc.assert_called_once_with( + scopes=None, + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + quota_project_id=None, + ) + + +@pytest.mark.parametrize( + "transport_class", + [ + transports.HubServiceGrpcTransport, + transports.HubServiceGrpcAsyncIOTransport, + ], +) +def test_hub_service_transport_auth_adc(transport_class): + # If credentials and host are not provided, the transport class should use + # ADC credentials. + with mock.patch.object(google.auth, 'default', autospec=True) as adc: + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + transport_class(quota_project_id="octopus", scopes=["1", "2"]) + adc.assert_called_once_with( + scopes=["1", "2"], + default_scopes=( 'https://www.googleapis.com/auth/cloud-platform',), + quota_project_id="octopus", + ) + + +@pytest.mark.parametrize( + "transport_class", + [ + transports.HubServiceGrpcTransport, + transports.HubServiceGrpcAsyncIOTransport, + ], +) +def test_hub_service_transport_auth_gdch_credentials(transport_class): + host = 'https://language.com' + api_audience_tests = [None, 'https://language2.com'] + api_audience_expect = [host, 'https://language2.com'] + for t, e in zip(api_audience_tests, api_audience_expect): + with mock.patch.object(google.auth, 'default', autospec=True) as adc: + gdch_mock = mock.MagicMock() + type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock) + adc.return_value = (gdch_mock, None) + transport_class(host=host, api_audience=t) + gdch_mock.with_gdch_audience.assert_called_once_with( + e + ) + + +@pytest.mark.parametrize( + "transport_class,grpc_helpers", + [ + (transports.HubServiceGrpcTransport, grpc_helpers), + (transports.HubServiceGrpcAsyncIOTransport, grpc_helpers_async) + ], +) +def test_hub_service_transport_create_channel(transport_class, grpc_helpers): + # If credentials and host are not provided, the transport class should use + # ADC credentials. + with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object( + grpc_helpers, "create_channel", autospec=True + ) as create_channel: + creds = ga_credentials.AnonymousCredentials() + adc.return_value = (creds, None) + transport_class( + quota_project_id="octopus", + scopes=["1", "2"] + ) + + create_channel.assert_called_with( + "networkconnectivity.googleapis.com:443", + credentials=creds, + credentials_file=None, + quota_project_id="octopus", + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + scopes=["1", "2"], + default_host="networkconnectivity.googleapis.com", + ssl_credentials=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + +@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) +def test_hub_service_grpc_transport_client_cert_source_for_mtls( + transport_class +): + cred = ga_credentials.AnonymousCredentials() + + # Check ssl_channel_credentials is used if provided. + with mock.patch.object(transport_class, "create_channel") as mock_create_channel: + mock_ssl_channel_creds = mock.Mock() + transport_class( + host="squid.clam.whelk", + credentials=cred, + ssl_channel_credentials=mock_ssl_channel_creds + ) + mock_create_channel.assert_called_once_with( + "squid.clam.whelk:443", + credentials=cred, + credentials_file=None, + scopes=None, + ssl_credentials=mock_ssl_channel_creds, + quota_project_id=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls + # is used. + with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()): + with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred: + transport_class( + credentials=cred, + client_cert_source_for_mtls=client_cert_source_callback + ) + expected_cert, expected_key = client_cert_source_callback() + mock_ssl_cred.assert_called_once_with( + certificate_chain=expected_cert, + private_key=expected_key + ) + + +@pytest.mark.parametrize("transport_name", [ + "grpc", + "grpc_asyncio", +]) +def test_hub_service_host_no_port(transport_name): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com'), + transport=transport_name, + ) + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:443' + ) + +@pytest.mark.parametrize("transport_name", [ + "grpc", + "grpc_asyncio", +]) +def test_hub_service_host_with_port(transport_name): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com:8000'), + transport=transport_name, + ) + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:8000' + ) + +def test_hub_service_grpc_transport_channel(): + channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials()) + + # Check that channel is used if provided. + transport = transports.HubServiceGrpcTransport( + host="squid.clam.whelk", + channel=channel, + ) + assert transport.grpc_channel == channel + assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None + + +def test_hub_service_grpc_asyncio_transport_channel(): + channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials()) + + # Check that channel is used if provided. + transport = transports.HubServiceGrpcAsyncIOTransport( + host="squid.clam.whelk", + channel=channel, + ) + assert transport.grpc_channel == channel + assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None + + +# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are +# removed from grpc/grpc_asyncio transport constructor. +@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) +def test_hub_service_transport_channel_mtls_with_client_cert_source( + transport_class +): + with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred: + with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: + mock_ssl_cred = mock.Mock() + grpc_ssl_channel_cred.return_value = mock_ssl_cred + + mock_grpc_channel = mock.Mock() + grpc_create_channel.return_value = mock_grpc_channel + + cred = ga_credentials.AnonymousCredentials() + with pytest.warns(DeprecationWarning): + with mock.patch.object(google.auth, 'default') as adc: + adc.return_value = (cred, None) + transport = transport_class( + host="squid.clam.whelk", + api_mtls_endpoint="mtls.squid.clam.whelk", + client_cert_source=client_cert_source_callback, + ) + adc.assert_called_once() + + grpc_ssl_channel_cred.assert_called_once_with( + certificate_chain=b"cert bytes", private_key=b"key bytes" + ) + grpc_create_channel.assert_called_once_with( + "mtls.squid.clam.whelk:443", + credentials=cred, + credentials_file=None, + scopes=None, + ssl_credentials=mock_ssl_cred, + quota_project_id=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + assert transport.grpc_channel == mock_grpc_channel + assert transport._ssl_channel_credentials == mock_ssl_cred + + +# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are +# removed from grpc/grpc_asyncio transport constructor. +@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) +def test_hub_service_transport_channel_mtls_with_adc( + transport_class +): + mock_ssl_cred = mock.Mock() + with mock.patch.multiple( + "google.auth.transport.grpc.SslCredentials", + __init__=mock.Mock(return_value=None), + ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred), + ): + with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: + mock_grpc_channel = mock.Mock() + grpc_create_channel.return_value = mock_grpc_channel + mock_cred = mock.Mock() + + with pytest.warns(DeprecationWarning): + transport = transport_class( + host="squid.clam.whelk", + credentials=mock_cred, + api_mtls_endpoint="mtls.squid.clam.whelk", + client_cert_source=None, + ) + + grpc_create_channel.assert_called_once_with( + "mtls.squid.clam.whelk:443", + credentials=mock_cred, + credentials_file=None, + scopes=None, + ssl_credentials=mock_ssl_cred, + quota_project_id=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + assert transport.grpc_channel == mock_grpc_channel + + +def test_hub_service_grpc_lro_client(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + transport = client.transport + + # Ensure that we have a api-core operations client. + assert isinstance( + transport.operations_client, + operations_v1.OperationsClient, + ) + + # Ensure that subsequent calls to the property send the exact same object. + assert transport.operations_client is transport.operations_client + + +def test_hub_service_grpc_lro_async_client(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc_asyncio', + ) + transport = client.transport + + # Ensure that we have a api-core operations client. + assert isinstance( + transport.operations_client, + operations_v1.OperationsAsyncClient, + ) + + # Ensure that subsequent calls to the property send the exact same object. + assert transport.operations_client is transport.operations_client + + +def test_group_path(): + project = "squid" + hub = "clam" + group = "whelk" + expected = "projects/{project}/locations/global/hubs/{hub}/groups/{group}".format(project=project, hub=hub, group=group, ) + actual = HubServiceClient.group_path(project, hub, group) + assert expected == actual + + +def test_parse_group_path(): + expected = { + "project": "octopus", + "hub": "oyster", + "group": "nudibranch", + } + path = HubServiceClient.group_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_group_path(path) + assert expected == actual + +def test_hub_path(): + project = "cuttlefish" + hub = "mussel" + expected = "projects/{project}/locations/global/hubs/{hub}".format(project=project, hub=hub, ) + actual = HubServiceClient.hub_path(project, hub) + assert expected == actual + + +def test_parse_hub_path(): + expected = { + "project": "winkle", + "hub": "nautilus", + } + path = HubServiceClient.hub_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_hub_path(path) + assert expected == actual + +def test_hub_route_path(): + project = "scallop" + hub = "abalone" + route_table = "squid" + route = "clam" + expected = "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}/routes/{route}".format(project=project, hub=hub, route_table=route_table, route=route, ) + actual = HubServiceClient.hub_route_path(project, hub, route_table, route) + assert expected == actual + + +def test_parse_hub_route_path(): + expected = { + "project": "whelk", + "hub": "octopus", + "route_table": "oyster", + "route": "nudibranch", + } + path = HubServiceClient.hub_route_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_hub_route_path(path) + assert expected == actual + +def test_instance_path(): + project = "cuttlefish" + zone = "mussel" + instance = "winkle" + expected = "projects/{project}/zones/{zone}/instances/{instance}".format(project=project, zone=zone, instance=instance, ) + actual = HubServiceClient.instance_path(project, zone, instance) + assert expected == actual + + +def test_parse_instance_path(): + expected = { + "project": "nautilus", + "zone": "scallop", + "instance": "abalone", + } + path = HubServiceClient.instance_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_instance_path(path) + assert expected == actual + +def test_interconnect_attachment_path(): + project = "squid" + region = "clam" + resource_id = "whelk" + expected = "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) + actual = HubServiceClient.interconnect_attachment_path(project, region, resource_id) + assert expected == actual + + +def test_parse_interconnect_attachment_path(): + expected = { + "project": "octopus", + "region": "oyster", + "resource_id": "nudibranch", + } + path = HubServiceClient.interconnect_attachment_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_interconnect_attachment_path(path) + assert expected == actual + +def test_network_path(): + project = "cuttlefish" + resource_id = "mussel" + expected = "projects/{project}/global/networks/{resource_id}".format(project=project, resource_id=resource_id, ) + actual = HubServiceClient.network_path(project, resource_id) + assert expected == actual + + +def test_parse_network_path(): + expected = { + "project": "winkle", + "resource_id": "nautilus", + } + path = HubServiceClient.network_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_network_path(path) + assert expected == actual + +def test_route_table_path(): + project = "scallop" + hub = "abalone" + route_table = "squid" + expected = "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}".format(project=project, hub=hub, route_table=route_table, ) + actual = HubServiceClient.route_table_path(project, hub, route_table) + assert expected == actual + + +def test_parse_route_table_path(): + expected = { + "project": "clam", + "hub": "whelk", + "route_table": "octopus", + } + path = HubServiceClient.route_table_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_route_table_path(path) + assert expected == actual + +def test_spoke_path(): + project = "oyster" + location = "nudibranch" + spoke = "cuttlefish" + expected = "projects/{project}/locations/{location}/spokes/{spoke}".format(project=project, location=location, spoke=spoke, ) + actual = HubServiceClient.spoke_path(project, location, spoke) + assert expected == actual + + +def test_parse_spoke_path(): + expected = { + "project": "mussel", + "location": "winkle", + "spoke": "nautilus", + } + path = HubServiceClient.spoke_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_spoke_path(path) + assert expected == actual + +def test_vpn_tunnel_path(): + project = "scallop" + region = "abalone" + resource_id = "squid" + expected = "projects/{project}/regions/{region}/vpnTunnels/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) + actual = HubServiceClient.vpn_tunnel_path(project, region, resource_id) + assert expected == actual + + +def test_parse_vpn_tunnel_path(): + expected = { + "project": "clam", + "region": "whelk", + "resource_id": "octopus", + } + path = HubServiceClient.vpn_tunnel_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_vpn_tunnel_path(path) + assert expected == actual + +def test_common_billing_account_path(): + billing_account = "oyster" + expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, ) + actual = HubServiceClient.common_billing_account_path(billing_account) + assert expected == actual + + +def test_parse_common_billing_account_path(): + expected = { + "billing_account": "nudibranch", + } + path = HubServiceClient.common_billing_account_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_billing_account_path(path) + assert expected == actual + +def test_common_folder_path(): + folder = "cuttlefish" + expected = "folders/{folder}".format(folder=folder, ) + actual = HubServiceClient.common_folder_path(folder) + assert expected == actual + + +def test_parse_common_folder_path(): + expected = { + "folder": "mussel", + } + path = HubServiceClient.common_folder_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_folder_path(path) + assert expected == actual + +def test_common_organization_path(): + organization = "winkle" + expected = "organizations/{organization}".format(organization=organization, ) + actual = HubServiceClient.common_organization_path(organization) + assert expected == actual + + +def test_parse_common_organization_path(): + expected = { + "organization": "nautilus", + } + path = HubServiceClient.common_organization_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_organization_path(path) + assert expected == actual + +def test_common_project_path(): + project = "scallop" + expected = "projects/{project}".format(project=project, ) + actual = HubServiceClient.common_project_path(project) + assert expected == actual + + +def test_parse_common_project_path(): + expected = { + "project": "abalone", + } + path = HubServiceClient.common_project_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_project_path(path) + assert expected == actual + +def test_common_location_path(): + project = "squid" + location = "clam" + expected = "projects/{project}/locations/{location}".format(project=project, location=location, ) + actual = HubServiceClient.common_location_path(project, location) + assert expected == actual + + +def test_parse_common_location_path(): + expected = { + "project": "whelk", + "location": "octopus", + } + path = HubServiceClient.common_location_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_location_path(path) + assert expected == actual + + +def test_client_with_default_client_info(): + client_info = gapic_v1.client_info.ClientInfo() + + with mock.patch.object(transports.HubServiceTransport, '_prep_wrapped_messages') as prep: + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + client_info=client_info, + ) + prep.assert_called_once_with(client_info) + + with mock.patch.object(transports.HubServiceTransport, '_prep_wrapped_messages') as prep: + transport_class = HubServiceClient.get_transport_class() + transport = transport_class( + credentials=ga_credentials.AnonymousCredentials(), + client_info=client_info, + ) + prep.assert_called_once_with(client_info) + +@pytest.mark.asyncio +async def test_transport_close_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc_asyncio", + ) + with mock.patch.object(type(getattr(client.transport, "grpc_channel")), "close") as close: + async with client: + close.assert_not_called() + close.assert_called_once() + + +def test_delete_operation(transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.DeleteOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = None + response = client.delete_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert response is None +@pytest.mark.asyncio +async def test_delete_operation_async(transport: str = "grpc"): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.DeleteOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + response = await client.delete_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert response is None + +def test_delete_operation_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.DeleteOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + call.return_value = None + + client.delete_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_delete_operation_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.DeleteOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + await client.delete_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_delete_operation_from_dict(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = None + + response = client.delete_operation( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_delete_operation_from_dict_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + response = await client.delete_operation( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_cancel_operation(transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.CancelOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = None + response = client.cancel_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert response is None +@pytest.mark.asyncio +async def test_cancel_operation_async(transport: str = "grpc"): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.CancelOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + response = await client.cancel_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert response is None + +def test_cancel_operation_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.CancelOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + call.return_value = None + + client.cancel_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_cancel_operation_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.CancelOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + await client.cancel_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_cancel_operation_from_dict(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = None + + response = client.cancel_operation( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_cancel_operation_from_dict_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + response = await client.cancel_operation( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_get_operation(transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.GetOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation() + response = client.get_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, operations_pb2.Operation) +@pytest.mark.asyncio +async def test_get_operation_async(transport: str = "grpc"): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.GetOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation() + ) + response = await client.get_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, operations_pb2.Operation) + +def test_get_operation_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.GetOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + call.return_value = operations_pb2.Operation() + + client.get_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_get_operation_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.GetOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation() + ) + await client.get_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_get_operation_from_dict(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation() + + response = client.get_operation( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_get_operation_from_dict_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation() + ) + response = await client.get_operation( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_list_operations(transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.ListOperationsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.ListOperationsResponse() + response = client.list_operations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, operations_pb2.ListOperationsResponse) +@pytest.mark.asyncio +async def test_list_operations_async(transport: str = "grpc"): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.ListOperationsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.ListOperationsResponse() + ) + response = await client.list_operations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, operations_pb2.ListOperationsResponse) + +def test_list_operations_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.ListOperationsRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + call.return_value = operations_pb2.ListOperationsResponse() + + client.list_operations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_list_operations_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.ListOperationsRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.ListOperationsResponse() + ) + await client.list_operations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_list_operations_from_dict(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.ListOperationsResponse() + + response = client.list_operations( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_list_operations_from_dict_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.ListOperationsResponse() + ) + response = await client.list_operations( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_list_locations(transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = locations_pb2.ListLocationsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = locations_pb2.ListLocationsResponse() + response = client.list_locations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, locations_pb2.ListLocationsResponse) +@pytest.mark.asyncio +async def test_list_locations_async(transport: str = "grpc"): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = locations_pb2.ListLocationsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.ListLocationsResponse() + ) + response = await client.list_locations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, locations_pb2.ListLocationsResponse) + +def test_list_locations_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = locations_pb2.ListLocationsRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + call.return_value = locations_pb2.ListLocationsResponse() + + client.list_locations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_list_locations_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = locations_pb2.ListLocationsRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.ListLocationsResponse() + ) + await client.list_locations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_list_locations_from_dict(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = locations_pb2.ListLocationsResponse() + + response = client.list_locations( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_list_locations_from_dict_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.ListLocationsResponse() + ) + response = await client.list_locations( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_get_location(transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = locations_pb2.GetLocationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_location), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = locations_pb2.Location() + response = client.get_location(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, locations_pb2.Location) +@pytest.mark.asyncio +async def test_get_location_async(transport: str = "grpc_asyncio"): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = locations_pb2.GetLocationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_location), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.Location() + ) + response = await client.get_location(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, locations_pb2.Location) + +def test_get_location_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials()) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = locations_pb2.GetLocationRequest() + request.name = "locations/abc" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_location), "__call__") as call: + call.return_value = locations_pb2.Location() + + client.get_location(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations/abc",) in kw["metadata"] +@pytest.mark.asyncio +async def test_get_location_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials() + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = locations_pb2.GetLocationRequest() + request.name = "locations/abc" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_location), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.Location() + ) + await client.get_location(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations/abc",) in kw["metadata"] + +def test_get_location_from_dict(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = locations_pb2.Location() + + response = client.get_location( + request={ + "name": "locations/abc", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_get_location_from_dict_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.Location() + ) + response = await client.get_location( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_set_iam_policy(transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.SetIamPolicyRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = policy_pb2.Policy(version=774, etag=b"etag_blob",) + response = client.set_iam_policy(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_pb2.Policy) + + assert response.version == 774 + + assert response.etag == b"etag_blob" +@pytest.mark.asyncio +async def test_set_iam_policy_async(transport: str = "grpc_asyncio"): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.SetIamPolicyRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + policy_pb2.Policy(version=774, etag=b"etag_blob",) + ) + response = await client.set_iam_policy(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_pb2.Policy) + + assert response.version == 774 + + assert response.etag == b"etag_blob" + +def test_set_iam_policy_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.SetIamPolicyRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + call.return_value = policy_pb2.Policy() + + client.set_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] +@pytest.mark.asyncio +async def test_set_iam_policy_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.SetIamPolicyRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy()) + + await client.set_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + +def test_set_iam_policy_from_dict(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = policy_pb2.Policy() + + response = client.set_iam_policy( + request={ + "resource": "resource_value", + "policy": policy_pb2.Policy(version=774), + } + ) + call.assert_called() + + +@pytest.mark.asyncio +async def test_set_iam_policy_from_dict_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + policy_pb2.Policy() + ) + + response = await client.set_iam_policy( + request={ + "resource": "resource_value", + "policy": policy_pb2.Policy(version=774), + } + ) + call.assert_called() + +def test_get_iam_policy(transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.GetIamPolicyRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = policy_pb2.Policy(version=774, etag=b"etag_blob",) + + response = client.get_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_pb2.Policy) + + assert response.version == 774 + + assert response.etag == b"etag_blob" + + +@pytest.mark.asyncio +async def test_get_iam_policy_async(transport: str = "grpc_asyncio"): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.GetIamPolicyRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_iam_policy), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + policy_pb2.Policy(version=774, etag=b"etag_blob",) + ) + + response = await client.get_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_pb2.Policy) + + assert response.version == 774 + + assert response.etag == b"etag_blob" + + +def test_get_iam_policy_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.GetIamPolicyRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: + call.return_value = policy_pb2.Policy() + + client.get_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_get_iam_policy_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.GetIamPolicyRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_iam_policy), "__call__" + ) as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy()) + + await client.get_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + + +def test_get_iam_policy_from_dict(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = policy_pb2.Policy() + + response = client.get_iam_policy( + request={ + "resource": "resource_value", + "options": options_pb2.GetPolicyOptions(requested_policy_version=2598), + } + ) + call.assert_called() + +@pytest.mark.asyncio +async def test_get_iam_policy_from_dict_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + policy_pb2.Policy() + ) + + response = await client.get_iam_policy( + request={ + "resource": "resource_value", + "options": options_pb2.GetPolicyOptions(requested_policy_version=2598), + } + ) + call.assert_called() + +def test_test_iam_permissions(transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.TestIamPermissionsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = iam_policy_pb2.TestIamPermissionsResponse( + permissions=["permissions_value"], + ) + + response = client.test_iam_permissions(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse) + + assert response.permissions == ["permissions_value"] + + +@pytest.mark.asyncio +async def test_test_iam_permissions_async(transport: str = "grpc_asyncio"): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.TestIamPermissionsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + iam_policy_pb2.TestIamPermissionsResponse(permissions=["permissions_value"],) + ) + + response = await client.test_iam_permissions(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse) + + assert response.permissions == ["permissions_value"] + + +def test_test_iam_permissions_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.TestIamPermissionsRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + call.return_value = iam_policy_pb2.TestIamPermissionsResponse() + + client.test_iam_permissions(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_test_iam_permissions_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.TestIamPermissionsRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + iam_policy_pb2.TestIamPermissionsResponse() + ) + + await client.test_iam_permissions(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + + +def test_test_iam_permissions_from_dict(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = iam_policy_pb2.TestIamPermissionsResponse() + + response = client.test_iam_permissions( + request={ + "resource": "resource_value", + "permissions": ["permissions_value"], + } + ) + call.assert_called() + +@pytest.mark.asyncio +async def test_test_iam_permissions_from_dict_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + iam_policy_pb2.TestIamPermissionsResponse() + ) + + response = await client.test_iam_permissions( + request={ + "resource": "resource_value", + "permissions": ["permissions_value"], + } + ) + call.assert_called() + +def test_transport_close(): + transports = { + "grpc": "_grpc_channel", + } + + for transport, close_name in transports.items(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport + ) + with mock.patch.object(type(getattr(client.transport, close_name)), "close") as close: + with client: + close.assert_not_called() + close.assert_called_once() + +def test_client_ctx(): + transports = [ + 'grpc', + ] + for transport in transports: + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport + ) + # Test client calls underlying transport. + with mock.patch.object(type(client.transport), "close") as close: + close.assert_not_called() + with client: + pass + close.assert_called() + +@pytest.mark.parametrize("client_class,transport_class", [ + (HubServiceClient, transports.HubServiceGrpcTransport), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport), +]) +def test_api_key_credentials(client_class, transport_class): + with mock.patch.object( + google.auth._default, "get_api_key_credentials", create=True + ) as get_api_key_credentials: + mock_cred = mock.Mock() + get_api_key_credentials.return_value = mock_cred + options = client_options.ClientOptions() + options.api_key = "api_key" + with mock.patch.object(transport_class, "__init__") as patched: + patched.return_value = None + client = client_class(client_options=options) + patched.assert_called_once_with( + credentials=mock_cred, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_policy_based_routing_service.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_policy_based_routing_service.py new file mode 100644 index 000000000000..f213f8aebe1c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_policy_based_routing_service.py @@ -0,0 +1,3640 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import os +# try/except added for compatibility with python < 3.8 +try: + from unittest import mock + from unittest.mock import AsyncMock # pragma: NO COVER +except ImportError: # pragma: NO COVER + import mock + +import grpc +from grpc.experimental import aio +import math +import pytest +from proto.marshal.rules.dates import DurationRule, TimestampRule +from proto.marshal.rules import wrappers + +from google.api_core import client_options +from google.api_core import exceptions as core_exceptions +from google.api_core import future +from google.api_core import gapic_v1 +from google.api_core import grpc_helpers +from google.api_core import grpc_helpers_async +from google.api_core import operation +from google.api_core import operation_async # type: ignore +from google.api_core import operations_v1 +from google.api_core import path_template +from google.auth import credentials as ga_credentials +from google.auth.exceptions import MutualTLSChannelError +from google.cloud.location import locations_pb2 +from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import PolicyBasedRoutingServiceAsyncClient +from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import PolicyBasedRoutingServiceClient +from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import pagers +from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import transports +from google.cloud.networkconnectivity_v1.types import common +from google.cloud.networkconnectivity_v1.types import policy_based_routing +from google.iam.v1 import iam_policy_pb2 # type: ignore +from google.iam.v1 import options_pb2 # type: ignore +from google.iam.v1 import policy_pb2 # type: ignore +from google.longrunning import operations_pb2 # type: ignore +from google.oauth2 import service_account +from google.protobuf import empty_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore +import google.auth + + +def client_cert_source_callback(): + return b"cert bytes", b"key bytes" + + +# If default endpoint is localhost, then default mtls endpoint will be the same. +# This method modifies the default endpoint so the client can produce a different +# mtls endpoint for endpoint testing purposes. +def modify_default_endpoint(client): + return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT + + +def test__get_default_mtls_endpoint(): + api_endpoint = "example.googleapis.com" + api_mtls_endpoint = "example.mtls.googleapis.com" + sandbox_endpoint = "example.sandbox.googleapis.com" + sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com" + non_googleapi = "api.example.com" + + assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(None) is None + assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint + assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint + assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint + assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint + assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi + + +@pytest.mark.parametrize("client_class,transport_name", [ + (PolicyBasedRoutingServiceClient, "grpc"), + (PolicyBasedRoutingServiceAsyncClient, "grpc_asyncio"), +]) +def test_policy_based_routing_service_client_from_service_account_info(client_class, transport_name): + creds = ga_credentials.AnonymousCredentials() + with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory: + factory.return_value = creds + info = {"valid": True} + client = client_class.from_service_account_info(info, transport=transport_name) + assert client.transport._credentials == creds + assert isinstance(client, client_class) + + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:443' + ) + + +@pytest.mark.parametrize("transport_class,transport_name", [ + (transports.PolicyBasedRoutingServiceGrpcTransport, "grpc"), + (transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio"), +]) +def test_policy_based_routing_service_client_service_account_always_use_jwt(transport_class, transport_name): + with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: + creds = service_account.Credentials(None, None, None) + transport = transport_class(credentials=creds, always_use_jwt_access=True) + use_jwt.assert_called_once_with(True) + + with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: + creds = service_account.Credentials(None, None, None) + transport = transport_class(credentials=creds, always_use_jwt_access=False) + use_jwt.assert_not_called() + + +@pytest.mark.parametrize("client_class,transport_name", [ + (PolicyBasedRoutingServiceClient, "grpc"), + (PolicyBasedRoutingServiceAsyncClient, "grpc_asyncio"), +]) +def test_policy_based_routing_service_client_from_service_account_file(client_class, transport_name): + creds = ga_credentials.AnonymousCredentials() + with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory: + factory.return_value = creds + client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name) + assert client.transport._credentials == creds + assert isinstance(client, client_class) + + client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name) + assert client.transport._credentials == creds + assert isinstance(client, client_class) + + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:443' + ) + + +def test_policy_based_routing_service_client_get_transport_class(): + transport = PolicyBasedRoutingServiceClient.get_transport_class() + available_transports = [ + transports.PolicyBasedRoutingServiceGrpcTransport, + ] + assert transport in available_transports + + transport = PolicyBasedRoutingServiceClient.get_transport_class("grpc") + assert transport == transports.PolicyBasedRoutingServiceGrpcTransport + + +@pytest.mark.parametrize("client_class,transport_class,transport_name", [ + (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc"), + (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio"), +]) +@mock.patch.object(PolicyBasedRoutingServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceClient)) +@mock.patch.object(PolicyBasedRoutingServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceAsyncClient)) +def test_policy_based_routing_service_client_client_options(client_class, transport_class, transport_name): + # Check that if channel is provided we won't create a new one. + with mock.patch.object(PolicyBasedRoutingServiceClient, 'get_transport_class') as gtc: + transport = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ) + client = client_class(transport=transport) + gtc.assert_not_called() + + # Check that if channel is provided via str we will create a new one. + with mock.patch.object(PolicyBasedRoutingServiceClient, 'get_transport_class') as gtc: + client = client_class(transport=transport_name) + gtc.assert_called() + + # Check the case api_endpoint is provided. + options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(transport=transport_name, client_options=options) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host="squid.clam.whelk", + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is + # "never". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is + # "always". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_MTLS_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has + # unsupported value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}): + with pytest.raises(MutualTLSChannelError): + client = client_class(transport=transport_name) + + # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}): + with pytest.raises(ValueError): + client = client_class(transport=transport_name) + + # Check the case quota_project_id is provided + options = client_options.ClientOptions(quota_project_id="octopus") + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id="octopus", + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + # Check the case api_endpoint is provided + options = client_options.ClientOptions(api_audience="https://language.googleapis.com") + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience="https://language.googleapis.com" + ) + +@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [ + (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc", "true"), + (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"), + (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc", "false"), + (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"), +]) +@mock.patch.object(PolicyBasedRoutingServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceClient)) +@mock.patch.object(PolicyBasedRoutingServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceAsyncClient)) +@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}) +def test_policy_based_routing_service_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env): + # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default + # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists. + + # Check the case client_cert_source is provided. Whether client cert is used depends on + # GOOGLE_API_USE_CLIENT_CERTIFICATE value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): + options = client_options.ClientOptions(client_cert_source=client_cert_source_callback) + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + + if use_client_cert_env == "false": + expected_client_cert_source = None + expected_host = client.DEFAULT_ENDPOINT + else: + expected_client_cert_source = client_cert_source_callback + expected_host = client.DEFAULT_MTLS_ENDPOINT + + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=expected_host, + scopes=None, + client_cert_source_for_mtls=expected_client_cert_source, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case ADC client cert is provided. Whether client cert is used depends on + # GOOGLE_API_USE_CLIENT_CERTIFICATE value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): + with mock.patch.object(transport_class, '__init__') as patched: + with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): + with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback): + if use_client_cert_env == "false": + expected_host = client.DEFAULT_ENDPOINT + expected_client_cert_source = None + else: + expected_host = client.DEFAULT_MTLS_ENDPOINT + expected_client_cert_source = client_cert_source_callback + + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=expected_host, + scopes=None, + client_cert_source_for_mtls=expected_client_cert_source, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case client_cert_source and ADC client cert are not provided. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): + with mock.patch.object(transport_class, '__init__') as patched: + with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False): + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + +@pytest.mark.parametrize("client_class", [ + PolicyBasedRoutingServiceClient, PolicyBasedRoutingServiceAsyncClient +]) +@mock.patch.object(PolicyBasedRoutingServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceClient)) +@mock.patch.object(PolicyBasedRoutingServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceAsyncClient)) +def test_policy_based_routing_service_client_get_mtls_endpoint_and_cert_source(client_class): + mock_client_cert_source = mock.Mock() + + # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): + mock_api_endpoint = "foo" + options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) + assert api_endpoint == mock_api_endpoint + assert cert_source == mock_client_cert_source + + # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}): + mock_client_cert_source = mock.Mock() + mock_api_endpoint = "foo" + options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) + assert api_endpoint == mock_api_endpoint + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_ENDPOINT + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): + with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_ENDPOINT + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): + with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): + with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT + assert cert_source == mock_client_cert_source + + +@pytest.mark.parametrize("client_class,transport_class,transport_name", [ + (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc"), + (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio"), +]) +def test_policy_based_routing_service_client_client_options_scopes(client_class, transport_class, transport_name): + # Check the case scopes are provided. + options = client_options.ClientOptions( + scopes=["1", "2"], + ) + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=["1", "2"], + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + +@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ + (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc", grpc_helpers), + (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), +]) +def test_policy_based_routing_service_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers): + # Check the case credentials file is provided. + options = client_options.ClientOptions( + credentials_file="credentials.json" + ) + + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file="credentials.json", + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + +def test_policy_based_routing_service_client_client_options_from_dict(): + with mock.patch('google.cloud.networkconnectivity_v1.services.policy_based_routing_service.transports.PolicyBasedRoutingServiceGrpcTransport.__init__') as grpc_transport: + grpc_transport.return_value = None + client = PolicyBasedRoutingServiceClient( + client_options={'api_endpoint': 'squid.clam.whelk'} + ) + grpc_transport.assert_called_once_with( + credentials=None, + credentials_file=None, + host="squid.clam.whelk", + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + +@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ + (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc", grpc_helpers), + (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), +]) +def test_policy_based_routing_service_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers): + # Check the case credentials file is provided. + options = client_options.ClientOptions( + credentials_file="credentials.json" + ) + + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file="credentials.json", + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # test that the credentials from file are saved and used as the credentials. + with mock.patch.object( + google.auth, "load_credentials_from_file", autospec=True + ) as load_creds, mock.patch.object( + google.auth, "default", autospec=True + ) as adc, mock.patch.object( + grpc_helpers, "create_channel" + ) as create_channel: + creds = ga_credentials.AnonymousCredentials() + file_creds = ga_credentials.AnonymousCredentials() + load_creds.return_value = (file_creds, None) + adc.return_value = (creds, None) + client = client_class(client_options=options, transport=transport_name) + create_channel.assert_called_with( + "networkconnectivity.googleapis.com:443", + credentials=file_creds, + credentials_file=None, + quota_project_id=None, + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + scopes=None, + default_host="networkconnectivity.googleapis.com", + ssl_credentials=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + +@pytest.mark.parametrize("request_type", [ + policy_based_routing.ListPolicyBasedRoutesRequest, + dict, +]) +def test_list_policy_based_routes(request_type, transport: str = 'grpc'): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = policy_based_routing.ListPolicyBasedRoutesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + ) + response = client.list_policy_based_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.ListPolicyBasedRoutesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListPolicyBasedRoutesPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +def test_list_policy_based_routes_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__') as call: + client.list_policy_based_routes() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.ListPolicyBasedRoutesRequest() + +@pytest.mark.asyncio +async def test_list_policy_based_routes_async(transport: str = 'grpc_asyncio', request_type=policy_based_routing.ListPolicyBasedRoutesRequest): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.ListPolicyBasedRoutesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + )) + response = await client.list_policy_based_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.ListPolicyBasedRoutesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListPolicyBasedRoutesAsyncPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +@pytest.mark.asyncio +async def test_list_policy_based_routes_async_from_dict(): + await test_list_policy_based_routes_async(request_type=dict) + + +def test_list_policy_based_routes_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = policy_based_routing.ListPolicyBasedRoutesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__') as call: + call.return_value = policy_based_routing.ListPolicyBasedRoutesResponse() + client.list_policy_based_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_list_policy_based_routes_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = policy_based_routing.ListPolicyBasedRoutesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.ListPolicyBasedRoutesResponse()) + await client.list_policy_based_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_list_policy_based_routes_flattened(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = policy_based_routing.ListPolicyBasedRoutesResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_policy_based_routes( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + + +def test_list_policy_based_routes_flattened_error(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_policy_based_routes( + policy_based_routing.ListPolicyBasedRoutesRequest(), + parent='parent_value', + ) + +@pytest.mark.asyncio +async def test_list_policy_based_routes_flattened_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = policy_based_routing.ListPolicyBasedRoutesResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.ListPolicyBasedRoutesResponse()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_policy_based_routes( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_list_policy_based_routes_flattened_error_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_policy_based_routes( + policy_based_routing.ListPolicyBasedRoutesRequest(), + parent='parent_value', + ) + + +def test_list_policy_based_routes_pager(transport_name: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + ], + next_page_token='abc', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[], + next_page_token='def', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + ], + next_page_token='ghi', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ('parent', ''), + )), + ) + pager = client.list_policy_based_routes(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, policy_based_routing.PolicyBasedRoute) + for i in results) +def test_list_policy_based_routes_pages(transport_name: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + ], + next_page_token='abc', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[], + next_page_token='def', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + ], + next_page_token='ghi', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + ], + ), + RuntimeError, + ) + pages = list(client.list_policy_based_routes(request={}).pages) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.asyncio +async def test_list_policy_based_routes_async_pager(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + ], + next_page_token='abc', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[], + next_page_token='def', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + ], + next_page_token='ghi', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_policy_based_routes(request={},) + assert async_pager.next_page_token == 'abc' + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, policy_based_routing.PolicyBasedRoute) + for i in responses) + + +@pytest.mark.asyncio +async def test_list_policy_based_routes_async_pages(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_policy_based_routes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + ], + next_page_token='abc', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[], + next_page_token='def', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + ], + next_page_token='ghi', + ), + policy_based_routing.ListPolicyBasedRoutesResponse( + policy_based_routes=[ + policy_based_routing.PolicyBasedRoute(), + policy_based_routing.PolicyBasedRoute(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_policy_based_routes(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.parametrize("request_type", [ + policy_based_routing.GetPolicyBasedRouteRequest, + dict, +]) +def test_get_policy_based_route(request_type, transport: str = 'grpc'): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = policy_based_routing.PolicyBasedRoute( + name='name_value', + description='description_value', + network='network_value', + priority=898, + self_link='self_link_value', + kind='kind_value', + next_hop_ilb_ip='next_hop_ilb_ip_value', + ) + response = client.get_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.GetPolicyBasedRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_based_routing.PolicyBasedRoute) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.network == 'network_value' + assert response.priority == 898 + assert response.self_link == 'self_link_value' + assert response.kind == 'kind_value' + + +def test_get_policy_based_route_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_policy_based_route), + '__call__') as call: + client.get_policy_based_route() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.GetPolicyBasedRouteRequest() + +@pytest.mark.asyncio +async def test_get_policy_based_route_async(transport: str = 'grpc_asyncio', request_type=policy_based_routing.GetPolicyBasedRouteRequest): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.PolicyBasedRoute( + name='name_value', + description='description_value', + network='network_value', + priority=898, + self_link='self_link_value', + kind='kind_value', + )) + response = await client.get_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.GetPolicyBasedRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_based_routing.PolicyBasedRoute) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.network == 'network_value' + assert response.priority == 898 + assert response.self_link == 'self_link_value' + assert response.kind == 'kind_value' + + +@pytest.mark.asyncio +async def test_get_policy_based_route_async_from_dict(): + await test_get_policy_based_route_async(request_type=dict) + + +def test_get_policy_based_route_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = policy_based_routing.GetPolicyBasedRouteRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_policy_based_route), + '__call__') as call: + call.return_value = policy_based_routing.PolicyBasedRoute() + client.get_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_get_policy_based_route_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = policy_based_routing.GetPolicyBasedRouteRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_policy_based_route), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.PolicyBasedRoute()) + await client.get_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_get_policy_based_route_flattened(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = policy_based_routing.PolicyBasedRoute() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_policy_based_route( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_get_policy_based_route_flattened_error(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_policy_based_route( + policy_based_routing.GetPolicyBasedRouteRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_get_policy_based_route_flattened_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = policy_based_routing.PolicyBasedRoute() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.PolicyBasedRoute()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_policy_based_route( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_get_policy_based_route_flattened_error_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_policy_based_route( + policy_based_routing.GetPolicyBasedRouteRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + policy_based_routing.CreatePolicyBasedRouteRequest, + dict, +]) +def test_create_policy_based_route(request_type, transport: str = 'grpc'): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.create_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.CreatePolicyBasedRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_create_policy_based_route_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_policy_based_route), + '__call__') as call: + client.create_policy_based_route() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.CreatePolicyBasedRouteRequest() + +@pytest.mark.asyncio +async def test_create_policy_based_route_async(transport: str = 'grpc_asyncio', request_type=policy_based_routing.CreatePolicyBasedRouteRequest): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.create_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.CreatePolicyBasedRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_create_policy_based_route_async_from_dict(): + await test_create_policy_based_route_async(request_type=dict) + + +def test_create_policy_based_route_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = policy_based_routing.CreatePolicyBasedRouteRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_policy_based_route), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.create_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_create_policy_based_route_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = policy_based_routing.CreatePolicyBasedRouteRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_policy_based_route), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.create_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_create_policy_based_route_flattened(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.create_policy_based_route( + parent='parent_value', + policy_based_route=policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])), + policy_based_route_id='policy_based_route_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].policy_based_route + mock_val = policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])) + assert arg == mock_val + arg = args[0].policy_based_route_id + mock_val = 'policy_based_route_id_value' + assert arg == mock_val + + +def test_create_policy_based_route_flattened_error(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.create_policy_based_route( + policy_based_routing.CreatePolicyBasedRouteRequest(), + parent='parent_value', + policy_based_route=policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])), + policy_based_route_id='policy_based_route_id_value', + ) + +@pytest.mark.asyncio +async def test_create_policy_based_route_flattened_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.create_policy_based_route( + parent='parent_value', + policy_based_route=policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])), + policy_based_route_id='policy_based_route_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].policy_based_route + mock_val = policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])) + assert arg == mock_val + arg = args[0].policy_based_route_id + mock_val = 'policy_based_route_id_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_create_policy_based_route_flattened_error_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.create_policy_based_route( + policy_based_routing.CreatePolicyBasedRouteRequest(), + parent='parent_value', + policy_based_route=policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])), + policy_based_route_id='policy_based_route_id_value', + ) + + +@pytest.mark.parametrize("request_type", [ + policy_based_routing.DeletePolicyBasedRouteRequest, + dict, +]) +def test_delete_policy_based_route(request_type, transport: str = 'grpc'): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.delete_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.DeletePolicyBasedRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_delete_policy_based_route_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_policy_based_route), + '__call__') as call: + client.delete_policy_based_route() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.DeletePolicyBasedRouteRequest() + +@pytest.mark.asyncio +async def test_delete_policy_based_route_async(transport: str = 'grpc_asyncio', request_type=policy_based_routing.DeletePolicyBasedRouteRequest): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.delete_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == policy_based_routing.DeletePolicyBasedRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_delete_policy_based_route_async_from_dict(): + await test_delete_policy_based_route_async(request_type=dict) + + +def test_delete_policy_based_route_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = policy_based_routing.DeletePolicyBasedRouteRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_policy_based_route), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.delete_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_delete_policy_based_route_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = policy_based_routing.DeletePolicyBasedRouteRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_policy_based_route), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.delete_policy_based_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_delete_policy_based_route_flattened(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.delete_policy_based_route( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_delete_policy_based_route_flattened_error(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.delete_policy_based_route( + policy_based_routing.DeletePolicyBasedRouteRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_delete_policy_based_route_flattened_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_policy_based_route), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.delete_policy_based_route( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_delete_policy_based_route_flattened_error_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.delete_policy_based_route( + policy_based_routing.DeletePolicyBasedRouteRequest(), + name='name_value', + ) + + +def test_credentials_transport_error(): + # It is an error to provide credentials and a transport instance. + transport = transports.PolicyBasedRoutingServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # It is an error to provide a credentials file and a transport instance. + transport = transports.PolicyBasedRoutingServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = PolicyBasedRoutingServiceClient( + client_options={"credentials_file": "credentials.json"}, + transport=transport, + ) + + # It is an error to provide an api_key and a transport instance. + transport = transports.PolicyBasedRoutingServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + options = client_options.ClientOptions() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = PolicyBasedRoutingServiceClient( + client_options=options, + transport=transport, + ) + + # It is an error to provide an api_key and a credential. + options = mock.Mock() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = PolicyBasedRoutingServiceClient( + client_options=options, + credentials=ga_credentials.AnonymousCredentials() + ) + + # It is an error to provide scopes and a transport instance. + transport = transports.PolicyBasedRoutingServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = PolicyBasedRoutingServiceClient( + client_options={"scopes": ["1", "2"]}, + transport=transport, + ) + + +def test_transport_instance(): + # A client may be instantiated with a custom transport instance. + transport = transports.PolicyBasedRoutingServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + client = PolicyBasedRoutingServiceClient(transport=transport) + assert client.transport is transport + +def test_transport_get_channel(): + # A client may be instantiated with a custom transport instance. + transport = transports.PolicyBasedRoutingServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + channel = transport.grpc_channel + assert channel + + transport = transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + channel = transport.grpc_channel + assert channel + +@pytest.mark.parametrize("transport_class", [ + transports.PolicyBasedRoutingServiceGrpcTransport, + transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, +]) +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() + +@pytest.mark.parametrize("transport_name", [ + "grpc", +]) +def test_transport_kind(transport_name): + transport = PolicyBasedRoutingServiceClient.get_transport_class(transport_name)( + credentials=ga_credentials.AnonymousCredentials(), + ) + assert transport.kind == transport_name + +def test_transport_grpc_default(): + # A client should use the gRPC transport by default. + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + assert isinstance( + client.transport, + transports.PolicyBasedRoutingServiceGrpcTransport, + ) + +def test_policy_based_routing_service_base_transport_error(): + # Passing both a credentials object and credentials_file should raise an error + with pytest.raises(core_exceptions.DuplicateCredentialArgs): + transport = transports.PolicyBasedRoutingServiceTransport( + credentials=ga_credentials.AnonymousCredentials(), + credentials_file="credentials.json" + ) + + +def test_policy_based_routing_service_base_transport(): + # Instantiate the base transport. + with mock.patch('google.cloud.networkconnectivity_v1.services.policy_based_routing_service.transports.PolicyBasedRoutingServiceTransport.__init__') as Transport: + Transport.return_value = None + transport = transports.PolicyBasedRoutingServiceTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Every method on the transport should just blindly + # raise NotImplementedError. + methods = ( + 'list_policy_based_routes', + 'get_policy_based_route', + 'create_policy_based_route', + 'delete_policy_based_route', + 'set_iam_policy', + 'get_iam_policy', + 'test_iam_permissions', + 'get_location', + 'list_locations', + 'get_operation', + 'cancel_operation', + 'delete_operation', + 'list_operations', + ) + for method in methods: + with pytest.raises(NotImplementedError): + getattr(transport, method)(request=object()) + + with pytest.raises(NotImplementedError): + transport.close() + + # Additionally, the LRO client (a property) should + # also raise NotImplementedError + with pytest.raises(NotImplementedError): + transport.operations_client + + # Catch all for all remaining methods and properties + remainder = [ + 'kind', + ] + for r in remainder: + with pytest.raises(NotImplementedError): + getattr(transport, r)() + + +def test_policy_based_routing_service_base_transport_with_credentials_file(): + # Instantiate the base transport with a credentials file + with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.networkconnectivity_v1.services.policy_based_routing_service.transports.PolicyBasedRoutingServiceTransport._prep_wrapped_messages') as Transport: + Transport.return_value = None + load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) + transport = transports.PolicyBasedRoutingServiceTransport( + credentials_file="credentials.json", + quota_project_id="octopus", + ) + load_creds.assert_called_once_with("credentials.json", + scopes=None, + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + quota_project_id="octopus", + ) + + +def test_policy_based_routing_service_base_transport_with_adc(): + # Test the default credentials are used if credentials and credentials_file are None. + with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.networkconnectivity_v1.services.policy_based_routing_service.transports.PolicyBasedRoutingServiceTransport._prep_wrapped_messages') as Transport: + Transport.return_value = None + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + transport = transports.PolicyBasedRoutingServiceTransport() + adc.assert_called_once() + + +def test_policy_based_routing_service_auth_adc(): + # If no credentials are provided, we should use ADC credentials. + with mock.patch.object(google.auth, 'default', autospec=True) as adc: + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + PolicyBasedRoutingServiceClient() + adc.assert_called_once_with( + scopes=None, + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + quota_project_id=None, + ) + + +@pytest.mark.parametrize( + "transport_class", + [ + transports.PolicyBasedRoutingServiceGrpcTransport, + transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, + ], +) +def test_policy_based_routing_service_transport_auth_adc(transport_class): + # If credentials and host are not provided, the transport class should use + # ADC credentials. + with mock.patch.object(google.auth, 'default', autospec=True) as adc: + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + transport_class(quota_project_id="octopus", scopes=["1", "2"]) + adc.assert_called_once_with( + scopes=["1", "2"], + default_scopes=( 'https://www.googleapis.com/auth/cloud-platform',), + quota_project_id="octopus", + ) + + +@pytest.mark.parametrize( + "transport_class", + [ + transports.PolicyBasedRoutingServiceGrpcTransport, + transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, + ], +) +def test_policy_based_routing_service_transport_auth_gdch_credentials(transport_class): + host = 'https://language.com' + api_audience_tests = [None, 'https://language2.com'] + api_audience_expect = [host, 'https://language2.com'] + for t, e in zip(api_audience_tests, api_audience_expect): + with mock.patch.object(google.auth, 'default', autospec=True) as adc: + gdch_mock = mock.MagicMock() + type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock) + adc.return_value = (gdch_mock, None) + transport_class(host=host, api_audience=t) + gdch_mock.with_gdch_audience.assert_called_once_with( + e + ) + + +@pytest.mark.parametrize( + "transport_class,grpc_helpers", + [ + (transports.PolicyBasedRoutingServiceGrpcTransport, grpc_helpers), + (transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, grpc_helpers_async) + ], +) +def test_policy_based_routing_service_transport_create_channel(transport_class, grpc_helpers): + # If credentials and host are not provided, the transport class should use + # ADC credentials. + with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object( + grpc_helpers, "create_channel", autospec=True + ) as create_channel: + creds = ga_credentials.AnonymousCredentials() + adc.return_value = (creds, None) + transport_class( + quota_project_id="octopus", + scopes=["1", "2"] + ) + + create_channel.assert_called_with( + "networkconnectivity.googleapis.com:443", + credentials=creds, + credentials_file=None, + quota_project_id="octopus", + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + scopes=["1", "2"], + default_host="networkconnectivity.googleapis.com", + ssl_credentials=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + +@pytest.mark.parametrize("transport_class", [transports.PolicyBasedRoutingServiceGrpcTransport, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport]) +def test_policy_based_routing_service_grpc_transport_client_cert_source_for_mtls( + transport_class +): + cred = ga_credentials.AnonymousCredentials() + + # Check ssl_channel_credentials is used if provided. + with mock.patch.object(transport_class, "create_channel") as mock_create_channel: + mock_ssl_channel_creds = mock.Mock() + transport_class( + host="squid.clam.whelk", + credentials=cred, + ssl_channel_credentials=mock_ssl_channel_creds + ) + mock_create_channel.assert_called_once_with( + "squid.clam.whelk:443", + credentials=cred, + credentials_file=None, + scopes=None, + ssl_credentials=mock_ssl_channel_creds, + quota_project_id=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls + # is used. + with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()): + with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred: + transport_class( + credentials=cred, + client_cert_source_for_mtls=client_cert_source_callback + ) + expected_cert, expected_key = client_cert_source_callback() + mock_ssl_cred.assert_called_once_with( + certificate_chain=expected_cert, + private_key=expected_key + ) + + +@pytest.mark.parametrize("transport_name", [ + "grpc", + "grpc_asyncio", +]) +def test_policy_based_routing_service_host_no_port(transport_name): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com'), + transport=transport_name, + ) + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:443' + ) + +@pytest.mark.parametrize("transport_name", [ + "grpc", + "grpc_asyncio", +]) +def test_policy_based_routing_service_host_with_port(transport_name): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com:8000'), + transport=transport_name, + ) + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:8000' + ) + +def test_policy_based_routing_service_grpc_transport_channel(): + channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials()) + + # Check that channel is used if provided. + transport = transports.PolicyBasedRoutingServiceGrpcTransport( + host="squid.clam.whelk", + channel=channel, + ) + assert transport.grpc_channel == channel + assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None + + +def test_policy_based_routing_service_grpc_asyncio_transport_channel(): + channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials()) + + # Check that channel is used if provided. + transport = transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport( + host="squid.clam.whelk", + channel=channel, + ) + assert transport.grpc_channel == channel + assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None + + +# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are +# removed from grpc/grpc_asyncio transport constructor. +@pytest.mark.parametrize("transport_class", [transports.PolicyBasedRoutingServiceGrpcTransport, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport]) +def test_policy_based_routing_service_transport_channel_mtls_with_client_cert_source( + transport_class +): + with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred: + with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: + mock_ssl_cred = mock.Mock() + grpc_ssl_channel_cred.return_value = mock_ssl_cred + + mock_grpc_channel = mock.Mock() + grpc_create_channel.return_value = mock_grpc_channel + + cred = ga_credentials.AnonymousCredentials() + with pytest.warns(DeprecationWarning): + with mock.patch.object(google.auth, 'default') as adc: + adc.return_value = (cred, None) + transport = transport_class( + host="squid.clam.whelk", + api_mtls_endpoint="mtls.squid.clam.whelk", + client_cert_source=client_cert_source_callback, + ) + adc.assert_called_once() + + grpc_ssl_channel_cred.assert_called_once_with( + certificate_chain=b"cert bytes", private_key=b"key bytes" + ) + grpc_create_channel.assert_called_once_with( + "mtls.squid.clam.whelk:443", + credentials=cred, + credentials_file=None, + scopes=None, + ssl_credentials=mock_ssl_cred, + quota_project_id=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + assert transport.grpc_channel == mock_grpc_channel + assert transport._ssl_channel_credentials == mock_ssl_cred + + +# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are +# removed from grpc/grpc_asyncio transport constructor. +@pytest.mark.parametrize("transport_class", [transports.PolicyBasedRoutingServiceGrpcTransport, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport]) +def test_policy_based_routing_service_transport_channel_mtls_with_adc( + transport_class +): + mock_ssl_cred = mock.Mock() + with mock.patch.multiple( + "google.auth.transport.grpc.SslCredentials", + __init__=mock.Mock(return_value=None), + ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred), + ): + with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: + mock_grpc_channel = mock.Mock() + grpc_create_channel.return_value = mock_grpc_channel + mock_cred = mock.Mock() + + with pytest.warns(DeprecationWarning): + transport = transport_class( + host="squid.clam.whelk", + credentials=mock_cred, + api_mtls_endpoint="mtls.squid.clam.whelk", + client_cert_source=None, + ) + + grpc_create_channel.assert_called_once_with( + "mtls.squid.clam.whelk:443", + credentials=mock_cred, + credentials_file=None, + scopes=None, + ssl_credentials=mock_ssl_cred, + quota_project_id=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + assert transport.grpc_channel == mock_grpc_channel + + +def test_policy_based_routing_service_grpc_lro_client(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + transport = client.transport + + # Ensure that we have a api-core operations client. + assert isinstance( + transport.operations_client, + operations_v1.OperationsClient, + ) + + # Ensure that subsequent calls to the property send the exact same object. + assert transport.operations_client is transport.operations_client + + +def test_policy_based_routing_service_grpc_lro_async_client(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc_asyncio', + ) + transport = client.transport + + # Ensure that we have a api-core operations client. + assert isinstance( + transport.operations_client, + operations_v1.OperationsAsyncClient, + ) + + # Ensure that subsequent calls to the property send the exact same object. + assert transport.operations_client is transport.operations_client + + +def test_network_path(): + project = "squid" + resource_id = "clam" + expected = "projects/{project}/global/networks/{resource_id}".format(project=project, resource_id=resource_id, ) + actual = PolicyBasedRoutingServiceClient.network_path(project, resource_id) + assert expected == actual + + +def test_parse_network_path(): + expected = { + "project": "whelk", + "resource_id": "octopus", + } + path = PolicyBasedRoutingServiceClient.network_path(**expected) + + # Check that the path construction is reversible. + actual = PolicyBasedRoutingServiceClient.parse_network_path(path) + assert expected == actual + +def test_policy_based_route_path(): + project = "oyster" + policy_based_route = "nudibranch" + expected = "projects/{project}/locations/global/PolicyBasedRoutes/{policy_based_route}".format(project=project, policy_based_route=policy_based_route, ) + actual = PolicyBasedRoutingServiceClient.policy_based_route_path(project, policy_based_route) + assert expected == actual + + +def test_parse_policy_based_route_path(): + expected = { + "project": "cuttlefish", + "policy_based_route": "mussel", + } + path = PolicyBasedRoutingServiceClient.policy_based_route_path(**expected) + + # Check that the path construction is reversible. + actual = PolicyBasedRoutingServiceClient.parse_policy_based_route_path(path) + assert expected == actual + +def test_common_billing_account_path(): + billing_account = "winkle" + expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, ) + actual = PolicyBasedRoutingServiceClient.common_billing_account_path(billing_account) + assert expected == actual + + +def test_parse_common_billing_account_path(): + expected = { + "billing_account": "nautilus", + } + path = PolicyBasedRoutingServiceClient.common_billing_account_path(**expected) + + # Check that the path construction is reversible. + actual = PolicyBasedRoutingServiceClient.parse_common_billing_account_path(path) + assert expected == actual + +def test_common_folder_path(): + folder = "scallop" + expected = "folders/{folder}".format(folder=folder, ) + actual = PolicyBasedRoutingServiceClient.common_folder_path(folder) + assert expected == actual + + +def test_parse_common_folder_path(): + expected = { + "folder": "abalone", + } + path = PolicyBasedRoutingServiceClient.common_folder_path(**expected) + + # Check that the path construction is reversible. + actual = PolicyBasedRoutingServiceClient.parse_common_folder_path(path) + assert expected == actual + +def test_common_organization_path(): + organization = "squid" + expected = "organizations/{organization}".format(organization=organization, ) + actual = PolicyBasedRoutingServiceClient.common_organization_path(organization) + assert expected == actual + + +def test_parse_common_organization_path(): + expected = { + "organization": "clam", + } + path = PolicyBasedRoutingServiceClient.common_organization_path(**expected) + + # Check that the path construction is reversible. + actual = PolicyBasedRoutingServiceClient.parse_common_organization_path(path) + assert expected == actual + +def test_common_project_path(): + project = "whelk" + expected = "projects/{project}".format(project=project, ) + actual = PolicyBasedRoutingServiceClient.common_project_path(project) + assert expected == actual + + +def test_parse_common_project_path(): + expected = { + "project": "octopus", + } + path = PolicyBasedRoutingServiceClient.common_project_path(**expected) + + # Check that the path construction is reversible. + actual = PolicyBasedRoutingServiceClient.parse_common_project_path(path) + assert expected == actual + +def test_common_location_path(): + project = "oyster" + location = "nudibranch" + expected = "projects/{project}/locations/{location}".format(project=project, location=location, ) + actual = PolicyBasedRoutingServiceClient.common_location_path(project, location) + assert expected == actual + + +def test_parse_common_location_path(): + expected = { + "project": "cuttlefish", + "location": "mussel", + } + path = PolicyBasedRoutingServiceClient.common_location_path(**expected) + + # Check that the path construction is reversible. + actual = PolicyBasedRoutingServiceClient.parse_common_location_path(path) + assert expected == actual + + +def test_client_with_default_client_info(): + client_info = gapic_v1.client_info.ClientInfo() + + with mock.patch.object(transports.PolicyBasedRoutingServiceTransport, '_prep_wrapped_messages') as prep: + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + client_info=client_info, + ) + prep.assert_called_once_with(client_info) + + with mock.patch.object(transports.PolicyBasedRoutingServiceTransport, '_prep_wrapped_messages') as prep: + transport_class = PolicyBasedRoutingServiceClient.get_transport_class() + transport = transport_class( + credentials=ga_credentials.AnonymousCredentials(), + client_info=client_info, + ) + prep.assert_called_once_with(client_info) + +@pytest.mark.asyncio +async def test_transport_close_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc_asyncio", + ) + with mock.patch.object(type(getattr(client.transport, "grpc_channel")), "close") as close: + async with client: + close.assert_not_called() + close.assert_called_once() + + +def test_delete_operation(transport: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.DeleteOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = None + response = client.delete_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert response is None +@pytest.mark.asyncio +async def test_delete_operation_async(transport: str = "grpc"): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.DeleteOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + response = await client.delete_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert response is None + +def test_delete_operation_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.DeleteOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + call.return_value = None + + client.delete_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_delete_operation_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.DeleteOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + await client.delete_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_delete_operation_from_dict(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = None + + response = client.delete_operation( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_delete_operation_from_dict_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + response = await client.delete_operation( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_cancel_operation(transport: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.CancelOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = None + response = client.cancel_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert response is None +@pytest.mark.asyncio +async def test_cancel_operation_async(transport: str = "grpc"): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.CancelOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + response = await client.cancel_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert response is None + +def test_cancel_operation_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.CancelOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + call.return_value = None + + client.cancel_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_cancel_operation_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.CancelOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + await client.cancel_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_cancel_operation_from_dict(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = None + + response = client.cancel_operation( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_cancel_operation_from_dict_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + None + ) + response = await client.cancel_operation( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_get_operation(transport: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.GetOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation() + response = client.get_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, operations_pb2.Operation) +@pytest.mark.asyncio +async def test_get_operation_async(transport: str = "grpc"): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.GetOperationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation() + ) + response = await client.get_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, operations_pb2.Operation) + +def test_get_operation_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.GetOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + call.return_value = operations_pb2.Operation() + + client.get_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_get_operation_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.GetOperationRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation() + ) + await client.get_operation(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_get_operation_from_dict(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation() + + response = client.get_operation( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_get_operation_from_dict_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_operation), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation() + ) + response = await client.get_operation( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_list_operations(transport: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.ListOperationsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.ListOperationsResponse() + response = client.list_operations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, operations_pb2.ListOperationsResponse) +@pytest.mark.asyncio +async def test_list_operations_async(transport: str = "grpc"): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = operations_pb2.ListOperationsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.ListOperationsResponse() + ) + response = await client.list_operations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, operations_pb2.ListOperationsResponse) + +def test_list_operations_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.ListOperationsRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + call.return_value = operations_pb2.ListOperationsResponse() + + client.list_operations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_list_operations_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = operations_pb2.ListOperationsRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.ListOperationsResponse() + ) + await client.list_operations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_list_operations_from_dict(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.ListOperationsResponse() + + response = client.list_operations( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_list_operations_from_dict_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_operations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.ListOperationsResponse() + ) + response = await client.list_operations( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_list_locations(transport: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = locations_pb2.ListLocationsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = locations_pb2.ListLocationsResponse() + response = client.list_locations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, locations_pb2.ListLocationsResponse) +@pytest.mark.asyncio +async def test_list_locations_async(transport: str = "grpc"): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = locations_pb2.ListLocationsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.ListLocationsResponse() + ) + response = await client.list_locations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, locations_pb2.ListLocationsResponse) + +def test_list_locations_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = locations_pb2.ListLocationsRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + call.return_value = locations_pb2.ListLocationsResponse() + + client.list_locations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] +@pytest.mark.asyncio +async def test_list_locations_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = locations_pb2.ListLocationsRequest() + request.name = "locations" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.ListLocationsResponse() + ) + await client.list_locations(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations",) in kw["metadata"] + +def test_list_locations_from_dict(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = locations_pb2.ListLocationsResponse() + + response = client.list_locations( + request={ + "name": "locations", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_list_locations_from_dict_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.ListLocationsResponse() + ) + response = await client.list_locations( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_get_location(transport: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = locations_pb2.GetLocationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_location), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = locations_pb2.Location() + response = client.get_location(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, locations_pb2.Location) +@pytest.mark.asyncio +async def test_get_location_async(transport: str = "grpc_asyncio"): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = locations_pb2.GetLocationRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_location), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.Location() + ) + response = await client.get_location(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, locations_pb2.Location) + +def test_get_location_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials()) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = locations_pb2.GetLocationRequest() + request.name = "locations/abc" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_location), "__call__") as call: + call.return_value = locations_pb2.Location() + + client.get_location(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations/abc",) in kw["metadata"] +@pytest.mark.asyncio +async def test_get_location_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials() + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = locations_pb2.GetLocationRequest() + request.name = "locations/abc" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_location), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.Location() + ) + await client.get_location(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "name=locations/abc",) in kw["metadata"] + +def test_get_location_from_dict(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = locations_pb2.Location() + + response = client.get_location( + request={ + "name": "locations/abc", + } + ) + call.assert_called() +@pytest.mark.asyncio +async def test_get_location_from_dict_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_locations), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + locations_pb2.Location() + ) + response = await client.get_location( + request={ + "name": "locations", + } + ) + call.assert_called() + + +def test_set_iam_policy(transport: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.SetIamPolicyRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = policy_pb2.Policy(version=774, etag=b"etag_blob",) + response = client.set_iam_policy(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_pb2.Policy) + + assert response.version == 774 + + assert response.etag == b"etag_blob" +@pytest.mark.asyncio +async def test_set_iam_policy_async(transport: str = "grpc_asyncio"): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.SetIamPolicyRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + policy_pb2.Policy(version=774, etag=b"etag_blob",) + ) + response = await client.set_iam_policy(request) + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_pb2.Policy) + + assert response.version == 774 + + assert response.etag == b"etag_blob" + +def test_set_iam_policy_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.SetIamPolicyRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + call.return_value = policy_pb2.Policy() + + client.set_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] +@pytest.mark.asyncio +async def test_set_iam_policy_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.SetIamPolicyRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy()) + + await client.set_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + +def test_set_iam_policy_from_dict(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = policy_pb2.Policy() + + response = client.set_iam_policy( + request={ + "resource": "resource_value", + "policy": policy_pb2.Policy(version=774), + } + ) + call.assert_called() + + +@pytest.mark.asyncio +async def test_set_iam_policy_from_dict_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + policy_pb2.Policy() + ) + + response = await client.set_iam_policy( + request={ + "resource": "resource_value", + "policy": policy_pb2.Policy(version=774), + } + ) + call.assert_called() + +def test_get_iam_policy(transport: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.GetIamPolicyRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = policy_pb2.Policy(version=774, etag=b"etag_blob",) + + response = client.get_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_pb2.Policy) + + assert response.version == 774 + + assert response.etag == b"etag_blob" + + +@pytest.mark.asyncio +async def test_get_iam_policy_async(transport: str = "grpc_asyncio"): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.GetIamPolicyRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_iam_policy), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + policy_pb2.Policy(version=774, etag=b"etag_blob",) + ) + + response = await client.get_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, policy_pb2.Policy) + + assert response.version == 774 + + assert response.etag == b"etag_blob" + + +def test_get_iam_policy_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.GetIamPolicyRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: + call.return_value = policy_pb2.Policy() + + client.get_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_get_iam_policy_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.GetIamPolicyRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_iam_policy), "__call__" + ) as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy()) + + await client.get_iam_policy(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + + +def test_get_iam_policy_from_dict(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = policy_pb2.Policy() + + response = client.get_iam_policy( + request={ + "resource": "resource_value", + "options": options_pb2.GetPolicyOptions(requested_policy_version=2598), + } + ) + call.assert_called() + +@pytest.mark.asyncio +async def test_get_iam_policy_from_dict_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + policy_pb2.Policy() + ) + + response = await client.get_iam_policy( + request={ + "resource": "resource_value", + "options": options_pb2.GetPolicyOptions(requested_policy_version=2598), + } + ) + call.assert_called() + +def test_test_iam_permissions(transport: str = "grpc"): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.TestIamPermissionsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = iam_policy_pb2.TestIamPermissionsResponse( + permissions=["permissions_value"], + ) + + response = client.test_iam_permissions(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse) + + assert response.permissions == ["permissions_value"] + + +@pytest.mark.asyncio +async def test_test_iam_permissions_async(transport: str = "grpc_asyncio"): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = iam_policy_pb2.TestIamPermissionsRequest() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + iam_policy_pb2.TestIamPermissionsResponse(permissions=["permissions_value"],) + ) + + response = await client.test_iam_permissions(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + + assert args[0] == request + + # Establish that the response is the type that we expect. + assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse) + + assert response.permissions == ["permissions_value"] + + +def test_test_iam_permissions_field_headers(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.TestIamPermissionsRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + call.return_value = iam_policy_pb2.TestIamPermissionsResponse() + + client.test_iam_permissions(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_test_iam_permissions_field_headers_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = iam_policy_pb2.TestIamPermissionsRequest() + request.resource = "resource/value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + iam_policy_pb2.TestIamPermissionsResponse() + ) + + await client.test_iam_permissions(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] + + +def test_test_iam_permissions_from_dict(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = iam_policy_pb2.TestIamPermissionsResponse() + + response = client.test_iam_permissions( + request={ + "resource": "resource_value", + "permissions": ["permissions_value"], + } + ) + call.assert_called() + +@pytest.mark.asyncio +async def test_test_iam_permissions_from_dict_async(): + client = PolicyBasedRoutingServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.test_iam_permissions), "__call__" + ) as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + iam_policy_pb2.TestIamPermissionsResponse() + ) + + response = await client.test_iam_permissions( + request={ + "resource": "resource_value", + "permissions": ["permissions_value"], + } + ) + call.assert_called() + +def test_transport_close(): + transports = { + "grpc": "_grpc_channel", + } + + for transport, close_name in transports.items(): + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport + ) + with mock.patch.object(type(getattr(client.transport, close_name)), "close") as close: + with client: + close.assert_not_called() + close.assert_called_once() + +def test_client_ctx(): + transports = [ + 'grpc', + ] + for transport in transports: + client = PolicyBasedRoutingServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport + ) + # Test client calls underlying transport. + with mock.patch.object(type(client.transport), "close") as close: + close.assert_not_called() + with client: + pass + close.assert_called() + +@pytest.mark.parametrize("client_class,transport_class", [ + (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport), + (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport), +]) +def test_api_key_credentials(client_class, transport_class): + with mock.patch.object( + google.auth._default, "get_api_key_credentials", create=True + ) as get_api_key_credentials: + mock_cred = mock.Mock() + get_api_key_credentials.return_value = mock_cred + options = client_options.ClientOptions() + options.api_key = "api_key" + with mock.patch.object(transport_class, "__init__") as patched: + patched.return_value = None + client = client_class(client_options=options) + patched.assert_called_once_with( + credentials=mock_cred, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.coveragerc b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.coveragerc new file mode 100644 index 000000000000..068c27e778ef --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.coveragerc @@ -0,0 +1,13 @@ +[run] +branch = True + +[report] +show_missing = True +omit = + google/cloud/networkconnectivity/__init__.py + google/cloud/networkconnectivity/gapic_version.py +exclude_lines = + # Re-enable the standard pragma + pragma: NO COVER + # Ignore debug-only repr + def __repr__ diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.flake8 b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.flake8 new file mode 100644 index 000000000000..29227d4cf419 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.flake8 @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2020 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 +# +# https://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 by synthtool. DO NOT EDIT! +[flake8] +ignore = E203, E266, E501, W503 +exclude = + # Exclude generated code. + **/proto/** + **/gapic/** + **/services/** + **/types/** + *_pb2.py + + # Standard linting exemptions. + **/.nox/** + __pycache__, + .git, + *.pyc, + conf.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/MANIFEST.in b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/MANIFEST.in new file mode 100644 index 000000000000..fab57468d64e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/MANIFEST.in @@ -0,0 +1,2 @@ +recursive-include google/cloud/networkconnectivity *.py +recursive-include google/cloud/networkconnectivity_v1alpha1 *.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/README.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/README.rst new file mode 100644 index 000000000000..d9dfc30e72fc --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/README.rst @@ -0,0 +1,49 @@ +Python Client for Google Cloud Networkconnectivity API +================================================= + +Quick Start +----------- + +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 Google Cloud Networkconnectivity API. +4. `Setup 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 +.. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html + +Installation +~~~~~~~~~~~~ + +Install this library in a `virtualenv`_ using pip. `virtualenv`_ is a tool to +create isolated Python environments. The basic problem it addresses is one of +dependencies and versions, and indirectly permissions. + +With `virtualenv`_, it's possible to install this library without needing system +install permissions, and without clashing with the installed system +dependencies. + +.. _`virtualenv`: https://virtualenv.pypa.io/en/latest/ + + +Mac/Linux +^^^^^^^^^ + +.. code-block:: console + + python3 -m venv + source /bin/activate + /bin/pip install /path/to/library + + +Windows +^^^^^^^ + +.. code-block:: console + + python3 -m venv + \Scripts\activate + \Scripts\pip.exe install \path\to\library diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/_static/custom.css b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/_static/custom.css new file mode 100644 index 000000000000..06423be0b592 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/_static/custom.css @@ -0,0 +1,3 @@ +dl.field-list > dt { + min-width: 100px +} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/conf.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/conf.py new file mode 100644 index 000000000000..8ab4790aa30b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/conf.py @@ -0,0 +1,376 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +# +# google-cloud-network-connectivity documentation build configuration file +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys +import os +import shlex + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.insert(0, os.path.abspath("..")) + +__version__ = "0.1.0" + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +needs_sphinx = "4.0.1" + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.todo", + "sphinx.ext.viewcode", +] + +# autodoc/autosummary flags +autoclass_content = "both" +autodoc_default_flags = ["members"] +autosummary_generate = True + + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# Allow markdown includes (so releases.md can include CHANGLEOG.md) +# http://www.sphinx-doc.org/en/master/markdown.html +source_parsers = {".md": "recommonmark.parser.CommonMarkParser"} + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +source_suffix = [".rst", ".md"] + +# The encoding of source files. +# source_encoding = 'utf-8-sig' + +# The root toctree document. +root_doc = "index" + +# General information about the project. +project = u"google-cloud-network-connectivity" +copyright = u"2023, Google, LLC" +author = u"Google APIs" # TODO: autogenerate this bit + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The full version, including alpha/beta/rc tags. +release = __version__ +# The short X.Y version. +version = ".".join(release.split(".")[0:2]) + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = 'en' + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +# today = '' +# Else, today_fmt is used as the format for a strftime call. +# today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = ["_build"] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +# default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +# add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +# add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +# show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = "sphinx" + +# A list of ignored prefixes for module index sorting. +# modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +# keep_warnings = False + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = "alabaster" + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = { + "description": "Google Cloud Client Libraries for Python", + "github_user": "googleapis", + "github_repo": "google-cloud-python", + "github_banner": True, + "font_family": "'Roboto', Georgia, sans", + "head_font_family": "'Roboto', Georgia, serif", + "code_font_family": "'Roboto Mono', 'Consolas', monospace", +} + +# Add any paths that contain custom themes here, relative to this directory. +# html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +# html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +# html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +# html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +# html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +# html_extra_path = [] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +# html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +# html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +# html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +# html_additional_pages = {} + +# If false, no module index is generated. +# html_domain_indices = True + +# If false, no index is generated. +# html_use_index = True + +# If true, the index is split into individual pages for each letter. +# html_split_index = False + +# If true, links to the reST sources are added to the pages. +# html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +# html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +# html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +# html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +# html_file_suffix = None + +# Language to be used for generating the HTML full-text search index. +# Sphinx supports the following languages: +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' +# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' +# html_search_language = 'en' + +# A dictionary with options for the search language support, empty by default. +# Now only 'ja' uses this config value +# html_search_options = {'type': 'default'} + +# The name of a javascript file (relative to the configuration directory) that +# implements a search results scorer. If empty, the default will be used. +# html_search_scorer = 'scorer.js' + +# Output file base name for HTML help builder. +htmlhelp_basename = "google-cloud-network-connectivity-doc" + +# -- Options for warnings ------------------------------------------------------ + + +suppress_warnings = [ + # Temporarily suppress this to avoid "more than one target found for + # cross-reference" warning, which are intractable for us to avoid while in + # a mono-repo. + # See https://github.com/sphinx-doc/sphinx/blob + # /2a65ffeef5c107c19084fabdd706cdff3f52d93c/sphinx/domains/python.py#L843 + "ref.python" +] + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # 'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + # 'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + # 'preamble': '', + # Latex figure (float) alignment + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + ( + root_doc, + "google-cloud-network-connectivity.tex", + u"google-cloud-network-connectivity Documentation", + author, + "manual", + ) +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +# latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +# latex_use_parts = False + +# If true, show page references after internal links. +# latex_show_pagerefs = False + +# If true, show URL addresses after external links. +# latex_show_urls = False + +# Documents to append as an appendix to all manuals. +# latex_appendices = [] + +# If false, no module index is generated. +# latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ( + root_doc, + "google-cloud-network-connectivity", + u"Google Cloud Networkconnectivity Documentation", + [author], + 1, + ) +] + +# If true, show URL addresses after external links. +# man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ( + root_doc, + "google-cloud-network-connectivity", + u"google-cloud-network-connectivity Documentation", + author, + "google-cloud-network-connectivity", + "GAPIC library for Google Cloud Networkconnectivity API", + "APIs", + ) +] + +# Documents to append as an appendix to all manuals. +# texinfo_appendices = [] + +# If false, no module index is generated. +# texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +# texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +# texinfo_no_detailmenu = False + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), + "google-auth": ("https://google-auth.readthedocs.io/en/stable", None), + "google-gax": ("https://gax-python.readthedocs.io/en/latest/", None), + "google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None), + "grpc": ("https://grpc.io/grpc/python/", None), + "requests": ("http://requests.kennethreitz.org/en/stable/", None), + "proto": ("https://proto-plus-python.readthedocs.io/en/stable", None), + "protobuf": ("https://googleapis.dev/python/protobuf/latest/", None), +} + + +# Napoleon settings +napoleon_google_docstring = True +napoleon_numpy_docstring = True +napoleon_include_private_with_doc = False +napoleon_include_special_with_doc = True +napoleon_use_admonition_for_examples = False +napoleon_use_admonition_for_notes = False +napoleon_use_admonition_for_references = False +napoleon_use_ivar = False +napoleon_use_param = True +napoleon_use_rtype = True diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/index.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/index.rst new file mode 100644 index 000000000000..1ba9e8169aa0 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/index.rst @@ -0,0 +1,7 @@ +API Reference +------------- +.. toctree:: + :maxdepth: 2 + + networkconnectivity_v1alpha1/services + networkconnectivity_v1alpha1/types diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/hub_service.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/hub_service.rst new file mode 100644 index 000000000000..f07f3feab53e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/hub_service.rst @@ -0,0 +1,10 @@ +HubService +---------------------------- + +.. automodule:: google.cloud.networkconnectivity_v1alpha1.services.hub_service + :members: + :inherited-members: + +.. automodule:: google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers + :members: + :inherited-members: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/services.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/services.rst new file mode 100644 index 000000000000..161761c40841 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/services.rst @@ -0,0 +1,6 @@ +Services for Google Cloud Networkconnectivity v1alpha1 API +========================================================== +.. toctree:: + :maxdepth: 2 + + hub_service diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/types.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/types.rst new file mode 100644 index 000000000000..82985cd2bbc3 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/types.rst @@ -0,0 +1,6 @@ +Types for Google Cloud Networkconnectivity v1alpha1 API +======================================================= + +.. automodule:: google.cloud.networkconnectivity_v1alpha1.types + :members: + :show-inheritance: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/__init__.py new file mode 100644 index 000000000000..48c01489722c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/__init__.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from google.cloud.networkconnectivity import gapic_version as package_version + +__version__ = package_version.__version__ + + +from google.cloud.networkconnectivity_v1alpha1.services.hub_service.client import HubServiceClient +from google.cloud.networkconnectivity_v1alpha1.services.hub_service.async_client import HubServiceAsyncClient + +from google.cloud.networkconnectivity_v1alpha1.types.common import OperationMetadata +from google.cloud.networkconnectivity_v1alpha1.types.hub import CreateHubRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import CreateSpokeRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import DeleteHubRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import DeleteSpokeRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import GetHubRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import GetSpokeRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import Hub +from google.cloud.networkconnectivity_v1alpha1.types.hub import ListHubsRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import ListHubsResponse +from google.cloud.networkconnectivity_v1alpha1.types.hub import ListSpokesRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import ListSpokesResponse +from google.cloud.networkconnectivity_v1alpha1.types.hub import RouterApplianceInstance +from google.cloud.networkconnectivity_v1alpha1.types.hub import Spoke +from google.cloud.networkconnectivity_v1alpha1.types.hub import UpdateHubRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import UpdateSpokeRequest +from google.cloud.networkconnectivity_v1alpha1.types.hub import State + +__all__ = ('HubServiceClient', + 'HubServiceAsyncClient', + 'OperationMetadata', + 'CreateHubRequest', + 'CreateSpokeRequest', + 'DeleteHubRequest', + 'DeleteSpokeRequest', + 'GetHubRequest', + 'GetSpokeRequest', + 'Hub', + 'ListHubsRequest', + 'ListHubsResponse', + 'ListSpokesRequest', + 'ListSpokesResponse', + 'RouterApplianceInstance', + 'Spoke', + 'UpdateHubRequest', + 'UpdateSpokeRequest', + 'State', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/gapic_version.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/gapic_version.py new file mode 100644 index 000000000000..360a0d13ebdd --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +__version__ = "0.0.0" # {x-release-please-version} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/py.typed b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/py.typed new file mode 100644 index 000000000000..cf2368140f5e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/py.typed @@ -0,0 +1,2 @@ +# Marker file for PEP 561. +# The google-cloud-network-connectivity package uses inline types. diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/__init__.py new file mode 100644 index 000000000000..3794503a0b9c --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/__init__.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from google.cloud.networkconnectivity_v1alpha1 import gapic_version as package_version + +__version__ = package_version.__version__ + + +from .services.hub_service import HubServiceClient +from .services.hub_service import HubServiceAsyncClient + +from .types.common import OperationMetadata +from .types.hub import CreateHubRequest +from .types.hub import CreateSpokeRequest +from .types.hub import DeleteHubRequest +from .types.hub import DeleteSpokeRequest +from .types.hub import GetHubRequest +from .types.hub import GetSpokeRequest +from .types.hub import Hub +from .types.hub import ListHubsRequest +from .types.hub import ListHubsResponse +from .types.hub import ListSpokesRequest +from .types.hub import ListSpokesResponse +from .types.hub import RouterApplianceInstance +from .types.hub import Spoke +from .types.hub import UpdateHubRequest +from .types.hub import UpdateSpokeRequest +from .types.hub import State + +__all__ = ( + 'HubServiceAsyncClient', +'CreateHubRequest', +'CreateSpokeRequest', +'DeleteHubRequest', +'DeleteSpokeRequest', +'GetHubRequest', +'GetSpokeRequest', +'Hub', +'HubServiceClient', +'ListHubsRequest', +'ListHubsResponse', +'ListSpokesRequest', +'ListSpokesResponse', +'OperationMetadata', +'RouterApplianceInstance', +'Spoke', +'State', +'UpdateHubRequest', +'UpdateSpokeRequest', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_metadata.json b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_metadata.json new file mode 100644 index 000000000000..d6600f02713b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_metadata.json @@ -0,0 +1,123 @@ + { + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", + "language": "python", + "libraryPackage": "google.cloud.networkconnectivity_v1alpha1", + "protoPackage": "google.cloud.networkconnectivity.v1alpha1", + "schema": "1.0", + "services": { + "HubService": { + "clients": { + "grpc": { + "libraryClient": "HubServiceClient", + "rpcs": { + "CreateHub": { + "methods": [ + "create_hub" + ] + }, + "CreateSpoke": { + "methods": [ + "create_spoke" + ] + }, + "DeleteHub": { + "methods": [ + "delete_hub" + ] + }, + "DeleteSpoke": { + "methods": [ + "delete_spoke" + ] + }, + "GetHub": { + "methods": [ + "get_hub" + ] + }, + "GetSpoke": { + "methods": [ + "get_spoke" + ] + }, + "ListHubs": { + "methods": [ + "list_hubs" + ] + }, + "ListSpokes": { + "methods": [ + "list_spokes" + ] + }, + "UpdateHub": { + "methods": [ + "update_hub" + ] + }, + "UpdateSpoke": { + "methods": [ + "update_spoke" + ] + } + } + }, + "grpc-async": { + "libraryClient": "HubServiceAsyncClient", + "rpcs": { + "CreateHub": { + "methods": [ + "create_hub" + ] + }, + "CreateSpoke": { + "methods": [ + "create_spoke" + ] + }, + "DeleteHub": { + "methods": [ + "delete_hub" + ] + }, + "DeleteSpoke": { + "methods": [ + "delete_spoke" + ] + }, + "GetHub": { + "methods": [ + "get_hub" + ] + }, + "GetSpoke": { + "methods": [ + "get_spoke" + ] + }, + "ListHubs": { + "methods": [ + "list_hubs" + ] + }, + "ListSpokes": { + "methods": [ + "list_spokes" + ] + }, + "UpdateHub": { + "methods": [ + "update_hub" + ] + }, + "UpdateSpoke": { + "methods": [ + "update_spoke" + ] + } + } + } + } + } + } +} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_version.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_version.py new file mode 100644 index 000000000000..360a0d13ebdd --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +__version__ = "0.0.0" # {x-release-please-version} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/py.typed b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/py.typed new file mode 100644 index 000000000000..cf2368140f5e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/py.typed @@ -0,0 +1,2 @@ +# Marker file for PEP 561. +# The google-cloud-network-connectivity package uses inline types. diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/__init__.py new file mode 100644 index 000000000000..89a37dc92c5a --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/__init__.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/__init__.py new file mode 100644 index 000000000000..3baa4e89a4e6 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from .client import HubServiceClient +from .async_client import HubServiceAsyncClient + +__all__ = ( + 'HubServiceClient', + 'HubServiceAsyncClient', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py new file mode 100644 index 000000000000..f76893de3684 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py @@ -0,0 +1,1437 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from collections import OrderedDict +import functools +import re +from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union + +from google.cloud.networkconnectivity_v1alpha1 import gapic_version as package_version + +from google.api_core.client_options import ClientOptions +from google.api_core import exceptions as core_exceptions +from google.api_core import gapic_v1 +from google.api_core import retry as retries +from google.auth import credentials as ga_credentials # type: ignore +from google.oauth2 import service_account # type: ignore + +try: + OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] +except AttributeError: # pragma: NO COVER + OptionalRetry = Union[retries.Retry, object] # type: ignore + +from google.api_core import operation # type: ignore +from google.api_core import operation_async # type: ignore +from google.cloud.networkconnectivity_v1alpha1.services.hub_service import pagers +from google.cloud.networkconnectivity_v1alpha1.types import common +from google.cloud.networkconnectivity_v1alpha1.types import hub +from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub +from google.protobuf import empty_pb2 # type: ignore +from google.protobuf import field_mask_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore +from .transports.base import HubServiceTransport, DEFAULT_CLIENT_INFO +from .transports.grpc_asyncio import HubServiceGrpcAsyncIOTransport +from .client import HubServiceClient + + +class HubServiceAsyncClient: + """Network Connectivity Center is a hub-and-spoke abstraction + for network connectivity management in Google Cloud. It reduces + operational complexity through a simple, centralized + connectivity management model. + """ + + _client: HubServiceClient + + DEFAULT_ENDPOINT = HubServiceClient.DEFAULT_ENDPOINT + DEFAULT_MTLS_ENDPOINT = HubServiceClient.DEFAULT_MTLS_ENDPOINT + + hub_path = staticmethod(HubServiceClient.hub_path) + parse_hub_path = staticmethod(HubServiceClient.parse_hub_path) + instance_path = staticmethod(HubServiceClient.instance_path) + parse_instance_path = staticmethod(HubServiceClient.parse_instance_path) + interconnect_attachment_path = staticmethod(HubServiceClient.interconnect_attachment_path) + parse_interconnect_attachment_path = staticmethod(HubServiceClient.parse_interconnect_attachment_path) + spoke_path = staticmethod(HubServiceClient.spoke_path) + parse_spoke_path = staticmethod(HubServiceClient.parse_spoke_path) + vpn_tunnel_path = staticmethod(HubServiceClient.vpn_tunnel_path) + parse_vpn_tunnel_path = staticmethod(HubServiceClient.parse_vpn_tunnel_path) + common_billing_account_path = staticmethod(HubServiceClient.common_billing_account_path) + parse_common_billing_account_path = staticmethod(HubServiceClient.parse_common_billing_account_path) + common_folder_path = staticmethod(HubServiceClient.common_folder_path) + parse_common_folder_path = staticmethod(HubServiceClient.parse_common_folder_path) + common_organization_path = staticmethod(HubServiceClient.common_organization_path) + parse_common_organization_path = staticmethod(HubServiceClient.parse_common_organization_path) + common_project_path = staticmethod(HubServiceClient.common_project_path) + parse_common_project_path = staticmethod(HubServiceClient.parse_common_project_path) + common_location_path = staticmethod(HubServiceClient.common_location_path) + parse_common_location_path = staticmethod(HubServiceClient.parse_common_location_path) + + @classmethod + def from_service_account_info(cls, info: dict, *args, **kwargs): + """Creates an instance of this client using the provided credentials + info. + + Args: + info (dict): The service account private key info. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HubServiceAsyncClient: The constructed client. + """ + return HubServiceClient.from_service_account_info.__func__(HubServiceAsyncClient, info, *args, **kwargs) # type: ignore + + @classmethod + def from_service_account_file(cls, filename: str, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HubServiceAsyncClient: The constructed client. + """ + return HubServiceClient.from_service_account_file.__func__(HubServiceAsyncClient, filename, *args, **kwargs) # type: ignore + + from_service_account_json = from_service_account_file + + @classmethod + def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None): + """Return the API endpoint and client cert source for mutual TLS. + + The client cert source is determined in the following order: + (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the + client cert source is None. + (2) if `client_options.client_cert_source` is provided, use the provided one; if the + default client cert source exists, use the default one; otherwise the client cert + source is None. + + The API endpoint is determined in the following order: + (1) if `client_options.api_endpoint` if provided, use the provided one. + (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the + default mTLS endpoint; if the environment variable is "never", use the default API + endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise + use the default API endpoint. + + More details can be found at https://google.aip.dev/auth/4114. + + Args: + client_options (google.api_core.client_options.ClientOptions): Custom options for the + client. Only the `api_endpoint` and `client_cert_source` properties may be used + in this method. + + Returns: + Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the + client cert source to use. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If any errors happen. + """ + return HubServiceClient.get_mtls_endpoint_and_cert_source(client_options) # type: ignore + + @property + def transport(self) -> HubServiceTransport: + """Returns the transport used by the client instance. + + Returns: + HubServiceTransport: The transport used by the client instance. + """ + return self._client.transport + + get_transport_class = functools.partial(type(HubServiceClient).get_transport_class, type(HubServiceClient)) + + def __init__(self, *, + credentials: Optional[ga_credentials.Credentials] = None, + transport: Union[str, HubServiceTransport] = "grpc_asyncio", + client_options: Optional[ClientOptions] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + ) -> None: + """Instantiates the hub service client. + + Args: + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + transport (Union[str, ~.HubServiceTransport]): The + transport to use. If set to None, a transport is chosen + automatically. + client_options (ClientOptions): Custom options for the client. It + won't take effect if a ``transport`` instance is provided. + (1) The ``api_endpoint`` property can be used to override the + default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT + environment variable can also be used to override the endpoint: + "always" (always use the default mTLS endpoint), "never" (always + use the default regular endpoint) and "auto" (auto switch to the + default mTLS endpoint if client certificate is present, this is + the default value). However, the ``api_endpoint`` property takes + precedence if provided. + (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable + is "true", then the ``client_cert_source`` property can be used + to provide client certificate for mutual TLS transport. If + not provided, the default SSL client certificate will be used if + present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not + set, no client certificate will be used. + + Raises: + google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport + creation failed for any reason. + """ + self._client = HubServiceClient( + credentials=credentials, + transport=transport, + client_options=client_options, + client_info=client_info, + + ) + + async def list_hubs(self, + request: Optional[Union[hub.ListHubsRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListHubsAsyncPager: + r"""Lists Hubs in a given project and location. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_list_hubs(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.ListHubsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_hubs(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest, dict]]): + The request object. Request for + [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] + method. + parent (:class:`str`): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListHubsAsyncPager: + Response for + [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] + method. + + 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([parent]) + 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.") + + request = hub.ListHubsRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_hubs, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListHubsAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def get_hub(self, + request: Optional[Union[hub.GetHubRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Hub: + r"""Gets details of a single Hub. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_get_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.GetHubRequest( + name="name_value", + ) + + # Make the request + response = await client.get_hub(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest, dict]]): + The request object. Request for + [HubService.GetHub][google.cloud.networkconnectivity.v1alpha1.HubService.GetHub] + method. + name (:class:`str`): + Required. Name of the Hub resource to + get. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1alpha1.types.Hub: + Network Connectivity Center is a + hub-and-spoke abstraction for network + connectivity management in Google Cloud. + It reduces operational complexity + through a simple, centralized + connectivity management model. Following + is the resource message of a hub. + + """ + # 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([name]) + 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.") + + request = hub.GetHubRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_hub, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def create_hub(self, + request: Optional[Union[gcn_hub.CreateHubRequest, dict]] = None, + *, + parent: Optional[str] = None, + hub: Optional[gcn_hub.Hub] = None, + hub_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Creates a new Hub in a given project and location. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_create_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.CreateHubRequest( + parent="parent_value", + ) + + # Make the request + operation = client.create_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest, dict]]): + The request object. Request for + [HubService.CreateHub][google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub] + method. + parent (:class:`str`): + Required. The parent resource's name + of the Hub. + + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + hub (:class:`google.cloud.networkconnectivity_v1alpha1.types.Hub`): + Required. Initial values for a new + Hub. + + This corresponds to the ``hub`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + hub_id (:class:`str`): + Optional. Unique id for the Hub to + create. + + This corresponds to the ``hub_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Hub` Network Connectivity Center is a hub-and-spoke abstraction for + network connectivity management in Google Cloud. It + reduces operational complexity through a simple, + centralized connectivity management model. Following + is the resource message of a hub. + + """ + # 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([parent, hub, hub_id]) + 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.") + + request = gcn_hub.CreateHubRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if hub is not None: + request.hub = hub + if hub_id is not None: + request.hub_id = hub_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.create_hub, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + gcn_hub.Hub, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def update_hub(self, + request: Optional[Union[gcn_hub.UpdateHubRequest, dict]] = None, + *, + hub: Optional[gcn_hub.Hub] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Updates the parameters of a single Hub. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_update_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.UpdateHubRequest( + ) + + # Make the request + operation = client.update_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest, dict]]): + The request object. Request for + [HubService.UpdateHub][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub] + method. + hub (:class:`google.cloud.networkconnectivity_v1alpha1.types.Hub`): + Required. The state that the Hub + should be in after the update. + + This corresponds to the ``hub`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`): + Optional. Field mask is used to specify the fields to be + overwritten in the Hub resource by the update. The + fields specified in the update_mask are relative to the + resource, not the full request. A field will be + overwritten if it is in the mask. If the user does not + provide a mask then all fields will be overwritten. + + This corresponds to the ``update_mask`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Hub` Network Connectivity Center is a hub-and-spoke abstraction for + network connectivity management in Google Cloud. It + reduces operational complexity through a simple, + centralized connectivity management model. Following + is the resource message of a hub. + + """ + # 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([hub, update_mask]) + 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.") + + request = gcn_hub.UpdateHubRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if hub is not None: + request.hub = hub + if update_mask is not None: + request.update_mask = update_mask + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.update_hub, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("hub.name", request.hub.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + gcn_hub.Hub, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def delete_hub(self, + request: Optional[Union[hub.DeleteHubRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Deletes a single Hub. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_delete_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.DeleteHubRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest, dict]]): + The request object. The request for + [HubService.DeleteHub][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub]. + name (:class:`str`): + Required. The name of the Hub to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.") + + request = hub.DeleteHubRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.delete_hub, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def list_spokes(self, + request: Optional[Union[hub.ListSpokesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListSpokesAsyncPager: + r"""Lists Spokes in a given project and location. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_list_spokes(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.ListSpokesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_spokes(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest, dict]]): + The request object. The request for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. + parent (:class:`str`): + Required. The parent's resource name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListSpokesAsyncPager: + The response for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. + + 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([parent]) + 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.") + + request = hub.ListSpokesRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_spokes, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListSpokesAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def get_spoke(self, + request: Optional[Union[hub.GetSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Spoke: + r"""Gets details of a single Spoke. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_get_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.GetSpokeRequest( + name="name_value", + ) + + # Make the request + response = await client.get_spoke(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest, dict]]): + The request object. The request for + [HubService.GetSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke]. + name (:class:`str`): + Required. The name of Spoke resource. + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1alpha1.types.Spoke: + A Spoke is an abstraction of a + network attachment being attached to a + Hub. A Spoke can be underlying a VPN + tunnel, a VLAN (interconnect) + attachment, a Router appliance, etc. + + """ + # 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([name]) + 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.") + + request = hub.GetSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_spoke, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def create_spoke(self, + request: Optional[Union[hub.CreateSpokeRequest, dict]] = None, + *, + parent: Optional[str] = None, + spoke: Optional[hub.Spoke] = None, + spoke_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Creates a new Spoke in a given project and location. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_create_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.CreateSpokeRequest( + parent="parent_value", + ) + + # Make the request + operation = client.create_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest, dict]]): + The request object. The request for + [HubService.CreateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke]. + parent (:class:`str`): + Required. The parent's resource name + of the Spoke. + + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke (:class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke`): + Required. Initial values for a new + Hub. + + This corresponds to the ``spoke`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_id (:class:`str`): + Optional. Unique id for the Spoke to + create. + + This corresponds to the ``spoke_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke` A Spoke is an abstraction of a network attachment being attached + to a Hub. A Spoke can be underlying a VPN tunnel, a + VLAN (interconnect) attachment, a Router appliance, + etc. + + """ + # 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([parent, spoke, spoke_id]) + 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.") + + request = hub.CreateSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if spoke is not None: + request.spoke = spoke + if spoke_id is not None: + request.spoke_id = spoke_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.create_spoke, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + hub.Spoke, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def update_spoke(self, + request: Optional[Union[hub.UpdateSpokeRequest, dict]] = None, + *, + spoke: Optional[hub.Spoke] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Updates the parameters of a single Spoke. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_update_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.UpdateSpokeRequest( + ) + + # Make the request + operation = client.update_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest, dict]]): + The request object. Request for + [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke] + method. + spoke (:class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke`): + Required. The state that the Spoke + should be in after the update. + + This corresponds to the ``spoke`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`): + Optional. Field mask is used to specify the fields to be + overwritten in the Spoke resource by the update. The + fields specified in the update_mask are relative to the + resource, not the full request. A field will be + overwritten if it is in the mask. If the user does not + provide a mask then all fields will be overwritten. + + This corresponds to the ``update_mask`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke` A Spoke is an abstraction of a network attachment being attached + to a Hub. A Spoke can be underlying a VPN tunnel, a + VLAN (interconnect) attachment, a Router appliance, + etc. + + """ + # 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([spoke, update_mask]) + 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.") + + request = hub.UpdateSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if spoke is not None: + request.spoke = spoke + if update_mask is not None: + request.update_mask = update_mask + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.update_spoke, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("spoke.name", request.spoke.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + hub.Spoke, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def delete_spoke(self, + request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Deletes a single Spoke. + + .. 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 networkconnectivity_v1alpha1 + + async def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest, dict]]): + The request object. The request for + [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke]. + name (:class:`str`): + Required. The name of the Spoke to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.") + + request = hub.DeleteSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.delete_spoke, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def __aenter__(self) -> "HubServiceAsyncClient": + return self + + async def __aexit__(self, exc_type, exc, tb): + await self.transport.close() + +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) + + +__all__ = ( + "HubServiceAsyncClient", +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py new file mode 100644 index 000000000000..ec81030e84d2 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py @@ -0,0 +1,1675 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from collections import OrderedDict +import os +import re +from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast + +from google.cloud.networkconnectivity_v1alpha1 import gapic_version as package_version + +from google.api_core import client_options as client_options_lib +from google.api_core import exceptions as core_exceptions +from google.api_core import gapic_v1 +from google.api_core import retry as retries +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport import mtls # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore +from google.auth.exceptions import MutualTLSChannelError # type: ignore +from google.oauth2 import service_account # type: ignore + +try: + OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] +except AttributeError: # pragma: NO COVER + OptionalRetry = Union[retries.Retry, object] # type: ignore + +from google.api_core import operation # type: ignore +from google.api_core import operation_async # type: ignore +from google.cloud.networkconnectivity_v1alpha1.services.hub_service import pagers +from google.cloud.networkconnectivity_v1alpha1.types import common +from google.cloud.networkconnectivity_v1alpha1.types import hub +from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub +from google.protobuf import empty_pb2 # type: ignore +from google.protobuf import field_mask_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore +from .transports.base import HubServiceTransport, DEFAULT_CLIENT_INFO +from .transports.grpc import HubServiceGrpcTransport +from .transports.grpc_asyncio import HubServiceGrpcAsyncIOTransport + + +class HubServiceClientMeta(type): + """Metaclass for the HubService client. + + This provides class-level methods for building and retrieving + support objects (e.g. transport) without polluting the client instance + objects. + """ + _transport_registry = OrderedDict() # type: Dict[str, Type[HubServiceTransport]] + _transport_registry["grpc"] = HubServiceGrpcTransport + _transport_registry["grpc_asyncio"] = HubServiceGrpcAsyncIOTransport + + def get_transport_class(cls, + label: Optional[str] = None, + ) -> Type[HubServiceTransport]: + """Returns an appropriate transport class. + + Args: + label: The name of the desired transport. If none is + provided, then the first transport in the registry is used. + + Returns: + The transport class to use. + """ + # If a specific transport is requested, return that one. + if label: + return cls._transport_registry[label] + + # No transport is requested; return the default (that is, the first one + # in the dictionary). + return next(iter(cls._transport_registry.values())) + + +class HubServiceClient(metaclass=HubServiceClientMeta): + """Network Connectivity Center is a hub-and-spoke abstraction + for network connectivity management in Google Cloud. It reduces + operational complexity through a simple, centralized + connectivity management model. + """ + + @staticmethod + def _get_default_mtls_endpoint(api_endpoint): + """Converts api endpoint to mTLS endpoint. + + Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to + "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively. + Args: + api_endpoint (Optional[str]): the api endpoint to convert. + Returns: + str: converted mTLS api endpoint. + """ + if not api_endpoint: + return api_endpoint + + mtls_endpoint_re = re.compile( + r"(?P[^.]+)(?P\.mtls)?(?P\.sandbox)?(?P\.googleapis\.com)?" + ) + + m = mtls_endpoint_re.match(api_endpoint) + name, mtls, sandbox, googledomain = m.groups() + if mtls or not googledomain: + return api_endpoint + + if sandbox: + return api_endpoint.replace( + "sandbox.googleapis.com", "mtls.sandbox.googleapis.com" + ) + + return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com") + + DEFAULT_ENDPOINT = "networkconnectivity.googleapis.com" + DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__( # type: ignore + DEFAULT_ENDPOINT + ) + + @classmethod + def from_service_account_info(cls, info: dict, *args, **kwargs): + """Creates an instance of this client using the provided credentials + info. + + Args: + info (dict): The service account private key info. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HubServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_info(info) + kwargs["credentials"] = credentials + return cls(*args, **kwargs) + + @classmethod + def from_service_account_file(cls, filename: str, *args, **kwargs): + """Creates an instance of this client using the provided credentials + file. + + Args: + filename (str): The path to the service account private key json + file. + args: Additional arguments to pass to the constructor. + kwargs: Additional arguments to pass to the constructor. + + Returns: + HubServiceClient: The constructed client. + """ + credentials = service_account.Credentials.from_service_account_file( + filename) + kwargs["credentials"] = credentials + return cls(*args, **kwargs) + + from_service_account_json = from_service_account_file + + @property + def transport(self) -> HubServiceTransport: + """Returns the transport used by the client instance. + + Returns: + HubServiceTransport: The transport used by the client + instance. + """ + return self._transport + + @staticmethod + def hub_path(project: str,hub: str,) -> str: + """Returns a fully-qualified hub string.""" + return "projects/{project}/locations/global/hubs/{hub}".format(project=project, hub=hub, ) + + @staticmethod + def parse_hub_path(path: str) -> Dict[str,str]: + """Parses a hub path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def instance_path(project: str,zone: str,instance: str,) -> str: + """Returns a fully-qualified instance string.""" + return "projects/{project}/zones/{zone}/instances/{instance}".format(project=project, zone=zone, instance=instance, ) + + @staticmethod + def parse_instance_path(path: str) -> Dict[str,str]: + """Parses a instance path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/zones/(?P.+?)/instances/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def interconnect_attachment_path(project: str,region: str,resource_id: str,) -> str: + """Returns a fully-qualified interconnect_attachment string.""" + return "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) + + @staticmethod + def parse_interconnect_attachment_path(path: str) -> Dict[str,str]: + """Parses a interconnect_attachment path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/regions/(?P.+?)/interconnectAttachments/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def spoke_path(project: str,location: str,spoke: str,) -> str: + """Returns a fully-qualified spoke string.""" + return "projects/{project}/locations/{location}/spokes/{spoke}".format(project=project, location=location, spoke=spoke, ) + + @staticmethod + def parse_spoke_path(path: str) -> Dict[str,str]: + """Parses a spoke path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)/spokes/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def vpn_tunnel_path(project: str,region: str,resource_id: str,) -> str: + """Returns a fully-qualified vpn_tunnel string.""" + return "projects/{project}/regions/{region}/vpnTunnels/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) + + @staticmethod + def parse_vpn_tunnel_path(path: str) -> Dict[str,str]: + """Parses a vpn_tunnel path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/regions/(?P.+?)/vpnTunnels/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_billing_account_path(billing_account: str, ) -> str: + """Returns a fully-qualified billing_account string.""" + return "billingAccounts/{billing_account}".format(billing_account=billing_account, ) + + @staticmethod + def parse_common_billing_account_path(path: str) -> Dict[str,str]: + """Parse a billing_account path into its component segments.""" + m = re.match(r"^billingAccounts/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_folder_path(folder: str, ) -> str: + """Returns a fully-qualified folder string.""" + return "folders/{folder}".format(folder=folder, ) + + @staticmethod + def parse_common_folder_path(path: str) -> Dict[str,str]: + """Parse a folder path into its component segments.""" + m = re.match(r"^folders/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_organization_path(organization: str, ) -> str: + """Returns a fully-qualified organization string.""" + return "organizations/{organization}".format(organization=organization, ) + + @staticmethod + def parse_common_organization_path(path: str) -> Dict[str,str]: + """Parse a organization path into its component segments.""" + m = re.match(r"^organizations/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_project_path(project: str, ) -> str: + """Returns a fully-qualified project string.""" + return "projects/{project}".format(project=project, ) + + @staticmethod + def parse_common_project_path(path: str) -> Dict[str,str]: + """Parse a project path into its component segments.""" + m = re.match(r"^projects/(?P.+?)$", path) + return m.groupdict() if m else {} + + @staticmethod + def common_location_path(project: str, location: str, ) -> str: + """Returns a fully-qualified location string.""" + return "projects/{project}/locations/{location}".format(project=project, location=location, ) + + @staticmethod + def parse_common_location_path(path: str) -> Dict[str,str]: + """Parse a location path into its component segments.""" + m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)$", path) + return m.groupdict() if m else {} + + @classmethod + def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None): + """Return the API endpoint and client cert source for mutual TLS. + + The client cert source is determined in the following order: + (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the + client cert source is None. + (2) if `client_options.client_cert_source` is provided, use the provided one; if the + default client cert source exists, use the default one; otherwise the client cert + source is None. + + The API endpoint is determined in the following order: + (1) if `client_options.api_endpoint` if provided, use the provided one. + (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the + default mTLS endpoint; if the environment variable is "never", use the default API + endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise + use the default API endpoint. + + More details can be found at https://google.aip.dev/auth/4114. + + Args: + client_options (google.api_core.client_options.ClientOptions): Custom options for the + client. Only the `api_endpoint` and `client_cert_source` properties may be used + in this method. + + Returns: + Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the + client cert source to use. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If any errors happen. + """ + if client_options is None: + client_options = client_options_lib.ClientOptions() + use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false") + use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto") + if use_client_cert not in ("true", "false"): + raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`") + if use_mtls_endpoint not in ("auto", "never", "always"): + raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`") + + # Figure out the client cert source to use. + client_cert_source = None + if use_client_cert == "true": + if client_options.client_cert_source: + client_cert_source = client_options.client_cert_source + elif mtls.has_default_client_cert_source(): + client_cert_source = mtls.default_client_cert_source() + + # Figure out which api endpoint to use. + if client_options.api_endpoint is not None: + api_endpoint = client_options.api_endpoint + elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source): + api_endpoint = cls.DEFAULT_MTLS_ENDPOINT + else: + api_endpoint = cls.DEFAULT_ENDPOINT + + return api_endpoint, client_cert_source + + def __init__(self, *, + credentials: Optional[ga_credentials.Credentials] = None, + transport: Optional[Union[str, HubServiceTransport]] = None, + client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + ) -> None: + """Instantiates the hub service client. + + Args: + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + transport (Union[str, HubServiceTransport]): The + transport to use. If set to None, a transport is chosen + automatically. + client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the + client. It won't take effect if a ``transport`` instance is provided. + (1) The ``api_endpoint`` property can be used to override the + default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT + environment variable can also be used to override the endpoint: + "always" (always use the default mTLS endpoint), "never" (always + use the default regular endpoint) and "auto" (auto switch to the + default mTLS endpoint if client certificate is present, this is + the default value). However, the ``api_endpoint`` property takes + precedence if provided. + (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable + is "true", then the ``client_cert_source`` property can be used + to provide client certificate for mutual TLS transport. If + not provided, the default SSL client certificate will be used if + present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not + set, no client certificate will be used. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport + creation failed for any reason. + """ + if isinstance(client_options, dict): + client_options = client_options_lib.from_dict(client_options) + if client_options is None: + client_options = client_options_lib.ClientOptions() + client_options = cast(client_options_lib.ClientOptions, client_options) + + api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options) + + api_key_value = getattr(client_options, "api_key", None) + if api_key_value and credentials: + raise ValueError("client_options.api_key and credentials are mutually exclusive") + + # Save or instantiate the transport. + # Ordinarily, we provide the transport, but allowing a custom transport + # instance provides an extensibility point for unusual situations. + if isinstance(transport, HubServiceTransport): + # transport is a HubServiceTransport instance. + if credentials or client_options.credentials_file or api_key_value: + raise ValueError("When providing a transport instance, " + "provide its credentials directly.") + if client_options.scopes: + raise ValueError( + "When providing a transport instance, provide its scopes " + "directly." + ) + self._transport = transport + else: + import google.auth._default # type: ignore + + if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"): + credentials = google.auth._default.get_api_key_credentials(api_key_value) + + Transport = type(self).get_transport_class(transport) + self._transport = Transport( + credentials=credentials, + credentials_file=client_options.credentials_file, + host=api_endpoint, + scopes=client_options.scopes, + client_cert_source_for_mtls=client_cert_source_func, + quota_project_id=client_options.quota_project_id, + client_info=client_info, + always_use_jwt_access=True, + api_audience=client_options.api_audience, + ) + + def list_hubs(self, + request: Optional[Union[hub.ListHubsRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListHubsPager: + r"""Lists Hubs in a given project and location. + + .. 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 networkconnectivity_v1alpha1 + + def sample_list_hubs(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.ListHubsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_hubs(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest, dict]): + The request object. Request for + [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] + method. + parent (str): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListHubsPager: + Response for + [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] + method. + + 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([parent]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListHubsRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListHubsRequest): + request = hub.ListHubsRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_hubs] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # 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.ListHubsPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_hub(self, + request: Optional[Union[hub.GetHubRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Hub: + r"""Gets details of a single Hub. + + .. 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 networkconnectivity_v1alpha1 + + def sample_get_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.GetHubRequest( + name="name_value", + ) + + # Make the request + response = client.get_hub(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest, dict]): + The request object. Request for + [HubService.GetHub][google.cloud.networkconnectivity.v1alpha1.HubService.GetHub] + method. + name (str): + Required. Name of the Hub resource to + get. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1alpha1.types.Hub: + Network Connectivity Center is a + hub-and-spoke abstraction for network + connectivity management in Google Cloud. + It reduces operational complexity + through a simple, centralized + connectivity management model. Following + is the resource message of a hub. + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetHubRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetHubRequest): + request = hub.GetHubRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_hub] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def create_hub(self, + request: Optional[Union[gcn_hub.CreateHubRequest, dict]] = None, + *, + parent: Optional[str] = None, + hub: Optional[gcn_hub.Hub] = None, + hub_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Creates a new Hub in a given project and location. + + .. 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 networkconnectivity_v1alpha1 + + def sample_create_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.CreateHubRequest( + parent="parent_value", + ) + + # Make the request + operation = client.create_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest, dict]): + The request object. Request for + [HubService.CreateHub][google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub] + method. + parent (str): + Required. The parent resource's name + of the Hub. + + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + hub (google.cloud.networkconnectivity_v1alpha1.types.Hub): + Required. Initial values for a new + Hub. + + This corresponds to the ``hub`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + hub_id (str): + Optional. Unique id for the Hub to + create. + + This corresponds to the ``hub_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Hub` Network Connectivity Center is a hub-and-spoke abstraction for + network connectivity management in Google Cloud. It + reduces operational complexity through a simple, + centralized connectivity management model. Following + is the resource message of a hub. + + """ + # 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([parent, hub, hub_id]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a gcn_hub.CreateHubRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, gcn_hub.CreateHubRequest): + request = gcn_hub.CreateHubRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if hub is not None: + request.hub = hub + if hub_id is not None: + request.hub_id = hub_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.create_hub] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + gcn_hub.Hub, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def update_hub(self, + request: Optional[Union[gcn_hub.UpdateHubRequest, dict]] = None, + *, + hub: Optional[gcn_hub.Hub] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Updates the parameters of a single Hub. + + .. 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 networkconnectivity_v1alpha1 + + def sample_update_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.UpdateHubRequest( + ) + + # Make the request + operation = client.update_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest, dict]): + The request object. Request for + [HubService.UpdateHub][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub] + method. + hub (google.cloud.networkconnectivity_v1alpha1.types.Hub): + Required. The state that the Hub + should be in after the update. + + This corresponds to the ``hub`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + update_mask (google.protobuf.field_mask_pb2.FieldMask): + Optional. Field mask is used to specify the fields to be + overwritten in the Hub resource by the update. The + fields specified in the update_mask are relative to the + resource, not the full request. A field will be + overwritten if it is in the mask. If the user does not + provide a mask then all fields will be overwritten. + + This corresponds to the ``update_mask`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Hub` Network Connectivity Center is a hub-and-spoke abstraction for + network connectivity management in Google Cloud. It + reduces operational complexity through a simple, + centralized connectivity management model. Following + is the resource message of a hub. + + """ + # 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([hub, update_mask]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a gcn_hub.UpdateHubRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, gcn_hub.UpdateHubRequest): + request = gcn_hub.UpdateHubRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if hub is not None: + request.hub = hub + if update_mask is not None: + request.update_mask = update_mask + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.update_hub] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("hub.name", request.hub.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + gcn_hub.Hub, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def delete_hub(self, + request: Optional[Union[hub.DeleteHubRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Deletes a single Hub. + + .. 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 networkconnectivity_v1alpha1 + + def sample_delete_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.DeleteHubRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest, dict]): + The request object. The request for + [HubService.DeleteHub][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub]. + name (str): + Required. The name of the Hub to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.DeleteHubRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.DeleteHubRequest): + request = hub.DeleteHubRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.delete_hub] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def list_spokes(self, + request: Optional[Union[hub.ListSpokesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListSpokesPager: + r"""Lists Spokes in a given project and location. + + .. 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 networkconnectivity_v1alpha1 + + def sample_list_spokes(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.ListSpokesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_spokes(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest, dict]): + The request object. The request for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. + parent (str): + Required. The parent's resource name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListSpokesPager: + The response for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. + + 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([parent]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListSpokesRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListSpokesRequest): + request = hub.ListSpokesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_spokes] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # 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.ListSpokesPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_spoke(self, + request: Optional[Union[hub.GetSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Spoke: + r"""Gets details of a single Spoke. + + .. 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 networkconnectivity_v1alpha1 + + def sample_get_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.GetSpokeRequest( + name="name_value", + ) + + # Make the request + response = client.get_spoke(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest, dict]): + The request object. The request for + [HubService.GetSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke]. + name (str): + Required. The name of Spoke resource. + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1alpha1.types.Spoke: + A Spoke is an abstraction of a + network attachment being attached to a + Hub. A Spoke can be underlying a VPN + tunnel, a VLAN (interconnect) + attachment, a Router appliance, etc. + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetSpokeRequest): + request = hub.GetSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def create_spoke(self, + request: Optional[Union[hub.CreateSpokeRequest, dict]] = None, + *, + parent: Optional[str] = None, + spoke: Optional[hub.Spoke] = None, + spoke_id: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Creates a new Spoke in a given project and location. + + .. 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 networkconnectivity_v1alpha1 + + def sample_create_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.CreateSpokeRequest( + parent="parent_value", + ) + + # Make the request + operation = client.create_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest, dict]): + The request object. The request for + [HubService.CreateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke]. + parent (str): + Required. The parent's resource name + of the Spoke. + + This corresponds to the ``parent`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke (google.cloud.networkconnectivity_v1alpha1.types.Spoke): + Required. Initial values for a new + Hub. + + This corresponds to the ``spoke`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_id (str): + Optional. Unique id for the Spoke to + create. + + This corresponds to the ``spoke_id`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke` A Spoke is an abstraction of a network attachment being attached + to a Hub. A Spoke can be underlying a VPN tunnel, a + VLAN (interconnect) attachment, a Router appliance, + etc. + + """ + # 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([parent, spoke, spoke_id]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.CreateSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.CreateSpokeRequest): + request = hub.CreateSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + if spoke is not None: + request.spoke = spoke + if spoke_id is not None: + request.spoke_id = spoke_id + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.create_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("parent", request.parent), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + hub.Spoke, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def update_spoke(self, + request: Optional[Union[hub.UpdateSpokeRequest, dict]] = None, + *, + spoke: Optional[hub.Spoke] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Updates the parameters of a single Spoke. + + .. 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 networkconnectivity_v1alpha1 + + def sample_update_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.UpdateSpokeRequest( + ) + + # Make the request + operation = client.update_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest, dict]): + The request object. Request for + [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke] + method. + spoke (google.cloud.networkconnectivity_v1alpha1.types.Spoke): + Required. The state that the Spoke + should be in after the update. + + This corresponds to the ``spoke`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + update_mask (google.protobuf.field_mask_pb2.FieldMask): + Optional. Field mask is used to specify the fields to be + overwritten in the Spoke resource by the update. The + fields specified in the update_mask are relative to the + resource, not the full request. A field will be + overwritten if it is in the mask. If the user does not + provide a mask then all fields will be overwritten. + + This corresponds to the ``update_mask`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke` A Spoke is an abstraction of a network attachment being attached + to a Hub. A Spoke can be underlying a VPN tunnel, a + VLAN (interconnect) attachment, a Router appliance, + etc. + + """ + # 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([spoke, update_mask]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.UpdateSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.UpdateSpokeRequest): + request = hub.UpdateSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if spoke is not None: + request.spoke = spoke + if update_mask is not None: + request.update_mask = update_mask + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.update_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("spoke.name", request.spoke.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + hub.Spoke, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def delete_spoke(self, + request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Deletes a single Spoke. + + .. 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 networkconnectivity_v1alpha1 + + def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest, dict]): + The request object. The request for + [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke]. + name (str): + Required. The name of the Spoke to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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.') + + # Minor optimization to avoid making a copy if the user passes + # in a hub.DeleteSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.DeleteSpokeRequest): + request = hub.DeleteSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.delete_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ("name", request.name), + )), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def __enter__(self) -> "HubServiceClient": + return self + + def __exit__(self, type, value, traceback): + """Releases underlying transport's resources. + + .. warning:: + ONLY use as a context manager if the transport is NOT shared + with other clients! Exiting the with block will CLOSE the transport + and may cause errors in other clients! + """ + self.transport.close() + + + + + + + +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) + + +__all__ = ( + "HubServiceClient", +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/pagers.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/pagers.py new file mode 100644 index 000000000000..942be58d08c5 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/pagers.py @@ -0,0 +1,260 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator + +from google.cloud.networkconnectivity_v1alpha1.types import hub + + +class ListHubsPager: + """A pager for iterating through ``list_hubs`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse` object, and + provides an ``__iter__`` method to iterate through its + ``hubs`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListHubs`` requests and continue to iterate + through the ``hubs`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse` + 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[..., hub.ListHubsResponse], + request: hub.ListHubsRequest, + response: hub.ListHubsResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListHubsRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListHubsResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Hub]: + for page in self.pages: + yield from page.hubs + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListHubsAsyncPager: + """A pager for iterating through ``list_hubs`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``hubs`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListHubs`` requests and continue to iterate + through the ``hubs`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse` + 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[..., Awaitable[hub.ListHubsResponse]], + request: hub.ListHubsRequest, + response: hub.ListHubsResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListHubsRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListHubsResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + def __aiter__(self) -> AsyncIterator[hub.Hub]: + async def async_generator(): + async for page in self.pages: + for response in page.hubs: + yield response + + return async_generator() + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListSpokesPager: + """A pager for iterating through ``list_spokes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse` object, and + provides an ``__iter__`` method to iterate through its + ``spokes`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListSpokes`` requests and continue to iterate + through the ``spokes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse` + 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[..., hub.ListSpokesResponse], + request: hub.ListSpokesRequest, + response: hub.ListSpokesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListSpokesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListSpokesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Spoke]: + for page in self.pages: + yield from page.spokes + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) + + +class ListSpokesAsyncPager: + """A pager for iterating through ``list_spokes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``spokes`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListSpokes`` requests and continue to iterate + through the ``spokes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse` + 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[..., Awaitable[hub.ListSpokesResponse]], + request: hub.ListSpokesRequest, + response: hub.ListSpokesResponse, + *, + metadata: Sequence[Tuple[str, str]] = ()): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListSpokesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListSpokesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + def __aiter__(self) -> AsyncIterator[hub.Spoke]: + async def async_generator(): + async for page in self.pages: + for response in page.spokes: + yield response + + return async_generator() + + def __repr__(self) -> str: + return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/__init__.py new file mode 100644 index 000000000000..029a0f72b9dd --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/__init__.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from collections import OrderedDict +from typing import Dict, Type + +from .base import HubServiceTransport +from .grpc import HubServiceGrpcTransport +from .grpc_asyncio import HubServiceGrpcAsyncIOTransport + + +# Compile a registry of transports. +_transport_registry = OrderedDict() # type: Dict[str, Type[HubServiceTransport]] +_transport_registry['grpc'] = HubServiceGrpcTransport +_transport_registry['grpc_asyncio'] = HubServiceGrpcAsyncIOTransport + +__all__ = ( + 'HubServiceTransport', + 'HubServiceGrpcTransport', + 'HubServiceGrpcAsyncIOTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py new file mode 100644 index 000000000000..2b10ec21611e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py @@ -0,0 +1,282 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import abc +from typing import Awaitable, Callable, Dict, Optional, Sequence, Union + +from google.cloud.networkconnectivity_v1alpha1 import gapic_version as package_version + +import google.auth # type: ignore +import google.api_core +from google.api_core import exceptions as core_exceptions +from google.api_core import gapic_v1 +from google.api_core import retry as retries +from google.api_core import operations_v1 +from google.auth import credentials as ga_credentials # type: ignore +from google.oauth2 import service_account # type: ignore + +from google.cloud.networkconnectivity_v1alpha1.types import hub +from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub +from google.longrunning import operations_pb2 # type: ignore + +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) + + +class HubServiceTransport(abc.ABC): + """Abstract transport class for HubService.""" + + AUTH_SCOPES = ( + 'https://www.googleapis.com/auth/cloud-platform', + ) + + DEFAULT_HOST: str = 'networkconnectivity.googleapis.com' + def __init__( + self, *, + host: str = DEFAULT_HOST, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + quota_project_id: Optional[str] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + always_use_jwt_access: Optional[bool] = False, + api_audience: Optional[str] = None, + **kwargs, + ) -> None: + """Instantiate the transport. + + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is mutually exclusive with credentials. + scopes (Optional[Sequence[str]]): A list of scopes. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + """ + + scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} + + # Save the scopes. + self._scopes = scopes + + # If no credentials are provided, then determine the appropriate + # defaults. + if credentials and credentials_file: + raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive") + + if credentials_file is not None: + credentials, _ = google.auth.load_credentials_from_file( + credentials_file, + **scopes_kwargs, + quota_project_id=quota_project_id + ) + elif credentials is None: + credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id) + # Don't apply audience if the credentials file passed from user. + if hasattr(credentials, "with_gdch_audience"): + credentials = credentials.with_gdch_audience(api_audience if api_audience else host) + + # If the credentials are service account credentials, then always try to use self signed JWT. + if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"): + credentials = credentials.with_always_use_jwt_access(True) + + # Save the credentials. + self._credentials = credentials + + # Save the hostname. Default to port 443 (HTTPS) if none is specified. + if ':' not in host: + host += ':443' + self._host = host + + def _prep_wrapped_messages(self, client_info): + # Precompute the wrapped methods. + self._wrapped_methods = { + self.list_hubs: gapic_v1.method.wrap_method( + self.list_hubs, + default_timeout=None, + client_info=client_info, + ), + self.get_hub: gapic_v1.method.wrap_method( + self.get_hub, + default_timeout=None, + client_info=client_info, + ), + self.create_hub: gapic_v1.method.wrap_method( + self.create_hub, + default_timeout=60.0, + client_info=client_info, + ), + self.update_hub: gapic_v1.method.wrap_method( + self.update_hub, + default_timeout=60.0, + client_info=client_info, + ), + self.delete_hub: gapic_v1.method.wrap_method( + self.delete_hub, + default_timeout=60.0, + client_info=client_info, + ), + self.list_spokes: gapic_v1.method.wrap_method( + self.list_spokes, + default_timeout=None, + client_info=client_info, + ), + self.get_spoke: gapic_v1.method.wrap_method( + self.get_spoke, + default_timeout=None, + client_info=client_info, + ), + self.create_spoke: gapic_v1.method.wrap_method( + self.create_spoke, + default_timeout=60.0, + client_info=client_info, + ), + self.update_spoke: gapic_v1.method.wrap_method( + self.update_spoke, + default_timeout=60.0, + client_info=client_info, + ), + self.delete_spoke: gapic_v1.method.wrap_method( + self.delete_spoke, + default_timeout=60.0, + client_info=client_info, + ), + } + + def close(self): + """Closes resources associated with the transport. + + .. warning:: + Only call this method if the transport is NOT shared + with other clients - this may cause errors in other clients! + """ + raise NotImplementedError() + + @property + def operations_client(self): + """Return the client designed to process long-running operations.""" + raise NotImplementedError() + + @property + def list_hubs(self) -> Callable[ + [hub.ListHubsRequest], + Union[ + hub.ListHubsResponse, + Awaitable[hub.ListHubsResponse] + ]]: + raise NotImplementedError() + + @property + def get_hub(self) -> Callable[ + [hub.GetHubRequest], + Union[ + hub.Hub, + Awaitable[hub.Hub] + ]]: + raise NotImplementedError() + + @property + def create_hub(self) -> Callable[ + [gcn_hub.CreateHubRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def update_hub(self) -> Callable[ + [gcn_hub.UpdateHubRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def delete_hub(self) -> Callable[ + [hub.DeleteHubRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def list_spokes(self) -> Callable[ + [hub.ListSpokesRequest], + Union[ + hub.ListSpokesResponse, + Awaitable[hub.ListSpokesResponse] + ]]: + raise NotImplementedError() + + @property + def get_spoke(self) -> Callable[ + [hub.GetSpokeRequest], + Union[ + hub.Spoke, + Awaitable[hub.Spoke] + ]]: + raise NotImplementedError() + + @property + def create_spoke(self) -> Callable[ + [hub.CreateSpokeRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def update_spoke(self) -> Callable[ + [hub.UpdateSpokeRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def delete_spoke(self) -> Callable[ + [hub.DeleteSpokeRequest], + Union[ + operations_pb2.Operation, + Awaitable[operations_pb2.Operation] + ]]: + raise NotImplementedError() + + @property + def kind(self) -> str: + raise NotImplementedError() + + +__all__ = ( + 'HubServiceTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py new file mode 100644 index 000000000000..1006698bf17d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py @@ -0,0 +1,521 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import warnings +from typing import Callable, Dict, Optional, Sequence, Tuple, Union + +from google.api_core import grpc_helpers +from google.api_core import operations_v1 +from google.api_core import gapic_v1 +import google.auth # type: ignore +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore + +import grpc # type: ignore + +from google.cloud.networkconnectivity_v1alpha1.types import hub +from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub +from google.longrunning import operations_pb2 # type: ignore +from .base import HubServiceTransport, DEFAULT_CLIENT_INFO + + +class HubServiceGrpcTransport(HubServiceTransport): + """gRPC backend transport for HubService. + + Network Connectivity Center is a hub-and-spoke abstraction + for network connectivity management in Google Cloud. It reduces + operational complexity through a simple, centralized + connectivity management model. + + This class defines the same methods as the primary client, so the + primary client can load the underlying transport implementation + and call it. + + It sends protocol buffers over the wire using gRPC (which is built on + top of HTTP/2); the ``grpcio`` package must be installed. + """ + _stubs: Dict[str, Callable] + + def __init__(self, *, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[grpc.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + always_use_jwt_access: Optional[bool] = False, + api_audience: Optional[str] = None, + ) -> None: + """Instantiate the transport. + + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is ignored if ``channel`` is provided. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional(Sequence[str])): A list of scopes. This argument is + ignored if ``channel`` is provided. + channel (Optional[grpc.Channel]): A ``Channel`` instance through + which to make calls. + api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. + If provided, it overrides the ``host`` argument and tries to create + a mutual TLS channel with client SSL credentials from + ``client_cert_source`` or application default SSL credentials. + client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): + Deprecated. A callback to provide client SSL certificate bytes and + private key bytes, both in PEM format. It is ignored if + ``api_mtls_endpoint`` is None. + ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials + for the grpc channel. It is ignored if ``channel`` is provided. + client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): + A callback to provide client certificate bytes and private key bytes, + both in PEM format. It is used to configure a mutual TLS channel. It is + ignored if ``channel`` or ``ssl_channel_credentials`` is provided. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + + Raises: + google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport + creation failed for any reason. + google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` + and ``credentials_file`` are passed. + """ + self._grpc_channel = None + self._ssl_channel_credentials = ssl_channel_credentials + self._stubs: Dict[str, Callable] = {} + self._operations_client: Optional[operations_v1.OperationsClient] = None + + if api_mtls_endpoint: + warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) + if client_cert_source: + warnings.warn("client_cert_source is deprecated", DeprecationWarning) + + if channel: + # Ignore credentials if a channel was passed. + credentials = False + # If a channel was explicitly provided, set it. + self._grpc_channel = channel + self._ssl_channel_credentials = None + + else: + if api_mtls_endpoint: + host = api_mtls_endpoint + + # Create SSL credentials with client_cert_source or application + # default SSL credentials. + if client_cert_source: + cert, key = client_cert_source() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + else: + self._ssl_channel_credentials = SslCredentials().ssl_credentials + + else: + if client_cert_source_for_mtls and not ssl_channel_credentials: + cert, key = client_cert_source_for_mtls() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + + # The base transport sets the host, credentials and scopes + super().__init__( + host=host, + credentials=credentials, + credentials_file=credentials_file, + scopes=scopes, + quota_project_id=quota_project_id, + client_info=client_info, + always_use_jwt_access=always_use_jwt_access, + api_audience=api_audience, + ) + + if not self._grpc_channel: + self._grpc_channel = type(self).create_channel( + self._host, + # use the credentials which are saved + credentials=self._credentials, + # Set ``credentials_file`` to ``None`` here as + # the credentials that we saved earlier should be used. + credentials_file=None, + scopes=self._scopes, + ssl_credentials=self._ssl_channel_credentials, + quota_project_id=quota_project_id, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + # Wrap messages. This must be done after self._grpc_channel exists + self._prep_wrapped_messages(client_info) + + @classmethod + def create_channel(cls, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + quota_project_id: Optional[str] = None, + **kwargs) -> grpc.Channel: + """Create and return a gRPC channel object. + Args: + host (Optional[str]): The host for the channel to use. + credentials (Optional[~.Credentials]): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is mutually exclusive with credentials. + scopes (Optional[Sequence[str]]): A optional list of scopes needed for this + service. These are only used when credentials are not specified and + are passed to :func:`google.auth.default`. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + kwargs (Optional[dict]): Keyword arguments, which are passed to the + channel creation. + Returns: + grpc.Channel: A gRPC channel object. + + Raises: + google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` + and ``credentials_file`` are passed. + """ + + return grpc_helpers.create_channel( + host, + credentials=credentials, + credentials_file=credentials_file, + quota_project_id=quota_project_id, + default_scopes=cls.AUTH_SCOPES, + scopes=scopes, + default_host=cls.DEFAULT_HOST, + **kwargs + ) + + @property + def grpc_channel(self) -> grpc.Channel: + """Return the channel designed to connect to this service. + """ + return self._grpc_channel + + @property + def operations_client(self) -> operations_v1.OperationsClient: + """Create the client designed to process long-running operations. + + This property caches on the instance; repeated calls return the same + client. + """ + # Quick check: Only create a new client if we do not already have one. + if self._operations_client is None: + self._operations_client = operations_v1.OperationsClient( + self.grpc_channel + ) + + # Return the client from cache. + return self._operations_client + + @property + def list_hubs(self) -> Callable[ + [hub.ListHubsRequest], + hub.ListHubsResponse]: + r"""Return a callable for the list hubs method over gRPC. + + Lists Hubs in a given project and location. + + Returns: + Callable[[~.ListHubsRequest], + ~.ListHubsResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_hubs' not in self._stubs: + self._stubs['list_hubs'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/ListHubs', + request_serializer=hub.ListHubsRequest.serialize, + response_deserializer=hub.ListHubsResponse.deserialize, + ) + return self._stubs['list_hubs'] + + @property + def get_hub(self) -> Callable[ + [hub.GetHubRequest], + hub.Hub]: + r"""Return a callable for the get hub method over gRPC. + + Gets details of a single Hub. + + Returns: + Callable[[~.GetHubRequest], + ~.Hub]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_hub' not in self._stubs: + self._stubs['get_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/GetHub', + request_serializer=hub.GetHubRequest.serialize, + response_deserializer=hub.Hub.deserialize, + ) + return self._stubs['get_hub'] + + @property + def create_hub(self) -> Callable[ + [gcn_hub.CreateHubRequest], + operations_pb2.Operation]: + r"""Return a callable for the create hub method over gRPC. + + Creates a new Hub in a given project and location. + + Returns: + Callable[[~.CreateHubRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_hub' not in self._stubs: + self._stubs['create_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/CreateHub', + request_serializer=gcn_hub.CreateHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_hub'] + + @property + def update_hub(self) -> Callable[ + [gcn_hub.UpdateHubRequest], + operations_pb2.Operation]: + r"""Return a callable for the update hub method over gRPC. + + Updates the parameters of a single Hub. + + Returns: + Callable[[~.UpdateHubRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'update_hub' not in self._stubs: + self._stubs['update_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/UpdateHub', + request_serializer=gcn_hub.UpdateHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['update_hub'] + + @property + def delete_hub(self) -> Callable[ + [hub.DeleteHubRequest], + operations_pb2.Operation]: + r"""Return a callable for the delete hub method over gRPC. + + Deletes a single Hub. + + Returns: + Callable[[~.DeleteHubRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_hub' not in self._stubs: + self._stubs['delete_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/DeleteHub', + request_serializer=hub.DeleteHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_hub'] + + @property + def list_spokes(self) -> Callable[ + [hub.ListSpokesRequest], + hub.ListSpokesResponse]: + r"""Return a callable for the list spokes method over gRPC. + + Lists Spokes in a given project and location. + + Returns: + Callable[[~.ListSpokesRequest], + ~.ListSpokesResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_spokes' not in self._stubs: + self._stubs['list_spokes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/ListSpokes', + request_serializer=hub.ListSpokesRequest.serialize, + response_deserializer=hub.ListSpokesResponse.deserialize, + ) + return self._stubs['list_spokes'] + + @property + def get_spoke(self) -> Callable[ + [hub.GetSpokeRequest], + hub.Spoke]: + r"""Return a callable for the get spoke method over gRPC. + + Gets details of a single Spoke. + + Returns: + Callable[[~.GetSpokeRequest], + ~.Spoke]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_spoke' not in self._stubs: + self._stubs['get_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/GetSpoke', + request_serializer=hub.GetSpokeRequest.serialize, + response_deserializer=hub.Spoke.deserialize, + ) + return self._stubs['get_spoke'] + + @property + def create_spoke(self) -> Callable[ + [hub.CreateSpokeRequest], + operations_pb2.Operation]: + r"""Return a callable for the create spoke method over gRPC. + + Creates a new Spoke in a given project and location. + + Returns: + Callable[[~.CreateSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_spoke' not in self._stubs: + self._stubs['create_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/CreateSpoke', + request_serializer=hub.CreateSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_spoke'] + + @property + def update_spoke(self) -> Callable[ + [hub.UpdateSpokeRequest], + operations_pb2.Operation]: + r"""Return a callable for the update spoke method over gRPC. + + Updates the parameters of a single Spoke. + + Returns: + Callable[[~.UpdateSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'update_spoke' not in self._stubs: + self._stubs['update_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/UpdateSpoke', + request_serializer=hub.UpdateSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['update_spoke'] + + @property + def delete_spoke(self) -> Callable[ + [hub.DeleteSpokeRequest], + operations_pb2.Operation]: + r"""Return a callable for the delete spoke method over gRPC. + + Deletes a single Spoke. + + Returns: + Callable[[~.DeleteSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_spoke' not in self._stubs: + self._stubs['delete_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/DeleteSpoke', + request_serializer=hub.DeleteSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_spoke'] + + def close(self): + self.grpc_channel.close() + + @property + def kind(self) -> str: + return "grpc" + + +__all__ = ( + 'HubServiceGrpcTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py new file mode 100644 index 000000000000..05a7617d8a50 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py @@ -0,0 +1,520 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import warnings +from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union + +from google.api_core import gapic_v1 +from google.api_core import grpc_helpers_async +from google.api_core import operations_v1 +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore + +import grpc # type: ignore +from grpc.experimental import aio # type: ignore + +from google.cloud.networkconnectivity_v1alpha1.types import hub +from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub +from google.longrunning import operations_pb2 # type: ignore +from .base import HubServiceTransport, DEFAULT_CLIENT_INFO +from .grpc import HubServiceGrpcTransport + + +class HubServiceGrpcAsyncIOTransport(HubServiceTransport): + """gRPC AsyncIO backend transport for HubService. + + Network Connectivity Center is a hub-and-spoke abstraction + for network connectivity management in Google Cloud. It reduces + operational complexity through a simple, centralized + connectivity management model. + + This class defines the same methods as the primary client, so the + primary client can load the underlying transport implementation + and call it. + + It sends protocol buffers over the wire using gRPC (which is built on + top of HTTP/2); the ``grpcio`` package must be installed. + """ + + _grpc_channel: aio.Channel + _stubs: Dict[str, Callable] = {} + + @classmethod + def create_channel(cls, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + quota_project_id: Optional[str] = None, + **kwargs) -> aio.Channel: + """Create and return a gRPC AsyncIO channel object. + Args: + host (Optional[str]): The host for the channel to use. + credentials (Optional[~.Credentials]): The + authorization credentials to attach to requests. These + credentials identify this application to the service. If + none are specified, the client will attempt to ascertain + the credentials from the environment. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional[Sequence[str]]): A optional list of scopes needed for this + service. These are only used when credentials are not specified and + are passed to :func:`google.auth.default`. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + kwargs (Optional[dict]): Keyword arguments, which are passed to the + channel creation. + Returns: + aio.Channel: A gRPC AsyncIO channel object. + """ + + return grpc_helpers_async.create_channel( + host, + credentials=credentials, + credentials_file=credentials_file, + quota_project_id=quota_project_id, + default_scopes=cls.AUTH_SCOPES, + scopes=scopes, + default_host=cls.DEFAULT_HOST, + **kwargs + ) + + def __init__(self, *, + host: str = 'networkconnectivity.googleapis.com', + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[aio.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, + client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, + always_use_jwt_access: Optional[bool] = False, + api_audience: Optional[str] = None, + ) -> None: + """Instantiate the transport. + + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + This argument is ignored if ``channel`` is provided. + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional[Sequence[str]]): A optional list of scopes needed for this + service. These are only used when credentials are not specified and + are passed to :func:`google.auth.default`. + channel (Optional[aio.Channel]): A ``Channel`` instance through + which to make calls. + api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. + If provided, it overrides the ``host`` argument and tries to create + a mutual TLS channel with client SSL credentials from + ``client_cert_source`` or application default SSL credentials. + client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): + Deprecated. A callback to provide client SSL certificate bytes and + private key bytes, both in PEM format. It is ignored if + ``api_mtls_endpoint`` is None. + ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials + for the grpc channel. It is ignored if ``channel`` is provided. + client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): + A callback to provide client certificate bytes and private key bytes, + both in PEM format. It is used to configure a mutual TLS channel. It is + ignored if ``channel`` or ``ssl_channel_credentials`` is provided. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you're developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + + Raises: + google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport + creation failed for any reason. + google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` + and ``credentials_file`` are passed. + """ + self._grpc_channel = None + self._ssl_channel_credentials = ssl_channel_credentials + self._stubs: Dict[str, Callable] = {} + self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None + + if api_mtls_endpoint: + warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) + if client_cert_source: + warnings.warn("client_cert_source is deprecated", DeprecationWarning) + + if channel: + # Ignore credentials if a channel was passed. + credentials = False + # If a channel was explicitly provided, set it. + self._grpc_channel = channel + self._ssl_channel_credentials = None + else: + if api_mtls_endpoint: + host = api_mtls_endpoint + + # Create SSL credentials with client_cert_source or application + # default SSL credentials. + if client_cert_source: + cert, key = client_cert_source() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + else: + self._ssl_channel_credentials = SslCredentials().ssl_credentials + + else: + if client_cert_source_for_mtls and not ssl_channel_credentials: + cert, key = client_cert_source_for_mtls() + self._ssl_channel_credentials = grpc.ssl_channel_credentials( + certificate_chain=cert, private_key=key + ) + + # The base transport sets the host, credentials and scopes + super().__init__( + host=host, + credentials=credentials, + credentials_file=credentials_file, + scopes=scopes, + quota_project_id=quota_project_id, + client_info=client_info, + always_use_jwt_access=always_use_jwt_access, + api_audience=api_audience, + ) + + if not self._grpc_channel: + self._grpc_channel = type(self).create_channel( + self._host, + # use the credentials which are saved + credentials=self._credentials, + # Set ``credentials_file`` to ``None`` here as + # the credentials that we saved earlier should be used. + credentials_file=None, + scopes=self._scopes, + ssl_credentials=self._ssl_channel_credentials, + quota_project_id=quota_project_id, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + # Wrap messages. This must be done after self._grpc_channel exists + self._prep_wrapped_messages(client_info) + + @property + def grpc_channel(self) -> aio.Channel: + """Create the channel designed to connect to this service. + + This property caches on the instance; repeated calls return + the same channel. + """ + # Return the channel from cache. + return self._grpc_channel + + @property + def operations_client(self) -> operations_v1.OperationsAsyncClient: + """Create the client designed to process long-running operations. + + This property caches on the instance; repeated calls return the same + client. + """ + # Quick check: Only create a new client if we do not already have one. + if self._operations_client is None: + self._operations_client = operations_v1.OperationsAsyncClient( + self.grpc_channel + ) + + # Return the client from cache. + return self._operations_client + + @property + def list_hubs(self) -> Callable[ + [hub.ListHubsRequest], + Awaitable[hub.ListHubsResponse]]: + r"""Return a callable for the list hubs method over gRPC. + + Lists Hubs in a given project and location. + + Returns: + Callable[[~.ListHubsRequest], + Awaitable[~.ListHubsResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_hubs' not in self._stubs: + self._stubs['list_hubs'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/ListHubs', + request_serializer=hub.ListHubsRequest.serialize, + response_deserializer=hub.ListHubsResponse.deserialize, + ) + return self._stubs['list_hubs'] + + @property + def get_hub(self) -> Callable[ + [hub.GetHubRequest], + Awaitable[hub.Hub]]: + r"""Return a callable for the get hub method over gRPC. + + Gets details of a single Hub. + + Returns: + Callable[[~.GetHubRequest], + Awaitable[~.Hub]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_hub' not in self._stubs: + self._stubs['get_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/GetHub', + request_serializer=hub.GetHubRequest.serialize, + response_deserializer=hub.Hub.deserialize, + ) + return self._stubs['get_hub'] + + @property + def create_hub(self) -> Callable[ + [gcn_hub.CreateHubRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the create hub method over gRPC. + + Creates a new Hub in a given project and location. + + Returns: + Callable[[~.CreateHubRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_hub' not in self._stubs: + self._stubs['create_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/CreateHub', + request_serializer=gcn_hub.CreateHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_hub'] + + @property + def update_hub(self) -> Callable[ + [gcn_hub.UpdateHubRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the update hub method over gRPC. + + Updates the parameters of a single Hub. + + Returns: + Callable[[~.UpdateHubRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'update_hub' not in self._stubs: + self._stubs['update_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/UpdateHub', + request_serializer=gcn_hub.UpdateHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['update_hub'] + + @property + def delete_hub(self) -> Callable[ + [hub.DeleteHubRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the delete hub method over gRPC. + + Deletes a single Hub. + + Returns: + Callable[[~.DeleteHubRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_hub' not in self._stubs: + self._stubs['delete_hub'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/DeleteHub', + request_serializer=hub.DeleteHubRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_hub'] + + @property + def list_spokes(self) -> Callable[ + [hub.ListSpokesRequest], + Awaitable[hub.ListSpokesResponse]]: + r"""Return a callable for the list spokes method over gRPC. + + Lists Spokes in a given project and location. + + Returns: + Callable[[~.ListSpokesRequest], + Awaitable[~.ListSpokesResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'list_spokes' not in self._stubs: + self._stubs['list_spokes'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/ListSpokes', + request_serializer=hub.ListSpokesRequest.serialize, + response_deserializer=hub.ListSpokesResponse.deserialize, + ) + return self._stubs['list_spokes'] + + @property + def get_spoke(self) -> Callable[ + [hub.GetSpokeRequest], + Awaitable[hub.Spoke]]: + r"""Return a callable for the get spoke method over gRPC. + + Gets details of a single Spoke. + + Returns: + Callable[[~.GetSpokeRequest], + Awaitable[~.Spoke]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'get_spoke' not in self._stubs: + self._stubs['get_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/GetSpoke', + request_serializer=hub.GetSpokeRequest.serialize, + response_deserializer=hub.Spoke.deserialize, + ) + return self._stubs['get_spoke'] + + @property + def create_spoke(self) -> Callable[ + [hub.CreateSpokeRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the create spoke method over gRPC. + + Creates a new Spoke in a given project and location. + + Returns: + Callable[[~.CreateSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'create_spoke' not in self._stubs: + self._stubs['create_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/CreateSpoke', + request_serializer=hub.CreateSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['create_spoke'] + + @property + def update_spoke(self) -> Callable[ + [hub.UpdateSpokeRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the update spoke method over gRPC. + + Updates the parameters of a single Spoke. + + Returns: + Callable[[~.UpdateSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'update_spoke' not in self._stubs: + self._stubs['update_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/UpdateSpoke', + request_serializer=hub.UpdateSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['update_spoke'] + + @property + def delete_spoke(self) -> Callable[ + [hub.DeleteSpokeRequest], + Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the delete spoke method over gRPC. + + Deletes a single Spoke. + + Returns: + Callable[[~.DeleteSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if 'delete_spoke' not in self._stubs: + self._stubs['delete_spoke'] = self.grpc_channel.unary_unary( + '/google.cloud.networkconnectivity.v1alpha1.HubService/DeleteSpoke', + request_serializer=hub.DeleteSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs['delete_spoke'] + + def close(self): + return self.grpc_channel.close() + + +__all__ = ( + 'HubServiceGrpcAsyncIOTransport', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/__init__.py new file mode 100644 index 000000000000..29685052d856 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/__init__.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from .common import ( + OperationMetadata, +) +from .hub import ( + CreateHubRequest, + CreateSpokeRequest, + DeleteHubRequest, + DeleteSpokeRequest, + GetHubRequest, + GetSpokeRequest, + Hub, + ListHubsRequest, + ListHubsResponse, + ListSpokesRequest, + ListSpokesResponse, + RouterApplianceInstance, + Spoke, + UpdateHubRequest, + UpdateSpokeRequest, + State, +) + +__all__ = ( + 'OperationMetadata', + 'CreateHubRequest', + 'CreateSpokeRequest', + 'DeleteHubRequest', + 'DeleteSpokeRequest', + 'GetHubRequest', + 'GetSpokeRequest', + 'Hub', + 'ListHubsRequest', + 'ListHubsResponse', + 'ListSpokesRequest', + 'ListSpokesResponse', + 'RouterApplianceInstance', + 'Spoke', + 'UpdateHubRequest', + 'UpdateSpokeRequest', + 'State', +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/common.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/common.py new file mode 100644 index 000000000000..a1fe9dd4b670 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/common.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from __future__ import annotations + +from typing import MutableMapping, MutableSequence + +import proto # type: ignore + +from google.protobuf import timestamp_pb2 # type: ignore + + +__protobuf__ = proto.module( + package='google.cloud.networkconnectivity.v1alpha1', + manifest={ + 'OperationMetadata', + }, +) + + +class OperationMetadata(proto.Message): + r"""Represents the metadata of the long-running operation. + + Attributes: + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the operation was + created. + end_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the operation finished + running. + target (str): + Output only. Server-defined resource path for + the target of the operation. + verb (str): + Output only. Name of the verb executed by the + operation. + status_message (str): + Output only. Human-readable status of the + operation, if any. + requested_cancellation (bool): + Output only. Identifies whether the user has requested + cancellation of the operation. Operations that have + successfully been cancelled have [Operation.error][] value + with a [google.rpc.Status.code][google.rpc.Status.code] of + 1, corresponding to ``Code.CANCELLED``. + api_version (str): + Output only. API version used to start the + operation. + """ + + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=1, + message=timestamp_pb2.Timestamp, + ) + end_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + target: str = proto.Field( + proto.STRING, + number=3, + ) + verb: str = proto.Field( + proto.STRING, + number=4, + ) + status_message: str = proto.Field( + proto.STRING, + number=5, + ) + requested_cancellation: bool = proto.Field( + proto.BOOL, + number=6, + ) + api_version: str = proto.Field( + proto.STRING, + number=7, + ) + + +__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/hub.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/hub.py new file mode 100644 index 000000000000..190cd37b36f3 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/hub.py @@ -0,0 +1,731 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +from __future__ import annotations + +from typing import MutableMapping, MutableSequence + +import proto # type: ignore + +from google.protobuf import field_mask_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore + + +__protobuf__ = proto.module( + package='google.cloud.networkconnectivity.v1alpha1', + manifest={ + 'State', + 'Hub', + 'Spoke', + 'ListHubsRequest', + 'ListHubsResponse', + 'GetHubRequest', + 'CreateHubRequest', + 'UpdateHubRequest', + 'DeleteHubRequest', + 'ListSpokesRequest', + 'ListSpokesResponse', + 'GetSpokeRequest', + 'CreateSpokeRequest', + 'UpdateSpokeRequest', + 'DeleteSpokeRequest', + 'RouterApplianceInstance', + }, +) + + +class State(proto.Enum): + r"""The State enum represents the lifecycle of a Network + Connectivity Center resource. + + Values: + STATE_UNSPECIFIED (0): + No state information available + CREATING (1): + The resource's create operation is in + progress + ACTIVE (2): + The resource is active + DELETING (3): + The resource's Delete operation is in + progress + """ + STATE_UNSPECIFIED = 0 + CREATING = 1 + ACTIVE = 2 + DELETING = 3 + + +class Hub(proto.Message): + r"""Network Connectivity Center is a hub-and-spoke abstraction + for network connectivity management in Google Cloud. It reduces + operational complexity through a simple, centralized + connectivity management model. Following is the resource message + of a hub. + + Attributes: + name (str): + Immutable. The name of a Hub resource. + create_time (google.protobuf.timestamp_pb2.Timestamp): + Time when the Hub was created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Time when the Hub was updated. + labels (MutableMapping[str, str]): + User-defined labels. + description (str): + Short description of the hub resource. + spokes (MutableSequence[str]): + Output only. A list of the URIs of all + attached spokes + unique_id (str): + Output only. Google-generated UUID for this resource. This + is unique across all Hub resources. If a Hub resource is + deleted and another with the same name is created, it gets a + different unique_id. + state (google.cloud.networkconnectivity_v1alpha1.types.State): + Output only. The current lifecycle state of + this Hub. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=3, + message=timestamp_pb2.Timestamp, + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=4, + ) + description: str = proto.Field( + proto.STRING, + number=5, + ) + spokes: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=6, + ) + unique_id: str = proto.Field( + proto.STRING, + number=8, + ) + state: 'State' = proto.Field( + proto.ENUM, + number=9, + enum='State', + ) + + +class Spoke(proto.Message): + r"""A Spoke is an abstraction of a network attachment being + attached to a Hub. A Spoke can be underlying a VPN tunnel, a + VLAN (interconnect) attachment, a Router appliance, etc. + + Attributes: + name (str): + Immutable. The name of a Spoke resource. + create_time (google.protobuf.timestamp_pb2.Timestamp): + The time when the Spoke was created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + The time when the Spoke was updated. + labels (MutableMapping[str, str]): + User-defined labels. + description (str): + Short description of the spoke resource + hub (str): + The resource URL of the hub resource that the + spoke is attached to + linked_vpn_tunnels (MutableSequence[str]): + The URIs of linked VPN tunnel resources + linked_interconnect_attachments (MutableSequence[str]): + The URIs of linked interconnect attachment + resources + linked_router_appliance_instances (MutableSequence[google.cloud.networkconnectivity_v1alpha1.types.RouterApplianceInstance]): + The URIs of linked Router appliance resources + unique_id (str): + Output only. Google-generated UUID for this resource. This + is unique across all Spoke resources. If a Spoke resource is + deleted and another with the same name is created, it gets a + different unique_id. + state (google.cloud.networkconnectivity_v1alpha1.types.State): + Output only. The current lifecycle state of + this Hub. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=3, + message=timestamp_pb2.Timestamp, + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=4, + ) + description: str = proto.Field( + proto.STRING, + number=5, + ) + hub: str = proto.Field( + proto.STRING, + number=6, + ) + linked_vpn_tunnels: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=12, + ) + linked_interconnect_attachments: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=13, + ) + linked_router_appliance_instances: MutableSequence['RouterApplianceInstance'] = proto.RepeatedField( + proto.MESSAGE, + number=14, + message='RouterApplianceInstance', + ) + unique_id: str = proto.Field( + proto.STRING, + number=11, + ) + state: 'State' = proto.Field( + proto.ENUM, + number=15, + enum='State', + ) + + +class ListHubsRequest(proto.Message): + r"""Request for + [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] + method. + + Attributes: + parent (str): + Required. The parent resource's name. + page_size (int): + The maximum number of results per page that + should be returned. + page_token (str): + The page token. + filter (str): + A filter expression that filters the results + listed in the response. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListHubsResponse(proto.Message): + r"""Response for + [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] + method. + + Attributes: + hubs (MutableSequence[google.cloud.networkconnectivity_v1alpha1.types.Hub]): + Hubs to be returned. + next_page_token (str): + The next pagination token in the List response. It should be + used as page_token for the following request. An empty value + means no more result. + unreachable (MutableSequence[str]): + Locations that could not be reached. + """ + + @property + def raw_page(self): + return self + + hubs: MutableSequence['Hub'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='Hub', + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class GetHubRequest(proto.Message): + r"""Request for + [HubService.GetHub][google.cloud.networkconnectivity.v1alpha1.HubService.GetHub] + method. + + Attributes: + name (str): + Required. Name of the Hub resource to get. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +class CreateHubRequest(proto.Message): + r"""Request for + [HubService.CreateHub][google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub] + method. + + Attributes: + parent (str): + Required. The parent resource's name of the + Hub. + hub_id (str): + Optional. Unique id for the Hub to create. + hub (google.cloud.networkconnectivity_v1alpha1.types.Hub): + Required. Initial values for a new Hub. + request_id (str): + Optional. 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. The server will guarantee that + for at least 60 minutes since the first request. + + For example, consider a situation where you make + an initial request and t he 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). + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + hub_id: str = proto.Field( + proto.STRING, + number=2, + ) + hub: 'Hub' = proto.Field( + proto.MESSAGE, + number=3, + message='Hub', + ) + request_id: str = proto.Field( + proto.STRING, + number=4, + ) + + +class UpdateHubRequest(proto.Message): + r"""Request for + [HubService.UpdateHub][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub] + method. + + Attributes: + update_mask (google.protobuf.field_mask_pb2.FieldMask): + Optional. Field mask is used to specify the fields to be + overwritten in the Hub resource by the update. The fields + specified in the update_mask are relative to the resource, + not the full request. A field will be overwritten if it is + in the mask. If the user does not provide a mask then all + fields will be overwritten. + hub (google.cloud.networkconnectivity_v1alpha1.types.Hub): + Required. The state that the Hub should be in + after the update. + request_id (str): + Optional. 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. The server will guarantee that + for at least 60 minutes since the first request. + + For example, consider a situation where you make + an initial request and t he 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). + """ + + update_mask: field_mask_pb2.FieldMask = proto.Field( + proto.MESSAGE, + number=1, + message=field_mask_pb2.FieldMask, + ) + hub: 'Hub' = proto.Field( + proto.MESSAGE, + number=2, + message='Hub', + ) + request_id: str = proto.Field( + proto.STRING, + number=3, + ) + + +class DeleteHubRequest(proto.Message): + r"""The request for + [HubService.DeleteHub][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub]. + + Attributes: + name (str): + Required. The name of the Hub to delete. + request_id (str): + Optional. 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. The server will guarantee that + for at least 60 minutes after the first request. + + For example, consider a situation where you make + an initial request and t he 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). + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + request_id: str = proto.Field( + proto.STRING, + number=2, + ) + + +class ListSpokesRequest(proto.Message): + r"""The request for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. + + Attributes: + parent (str): + Required. The parent's resource name. + page_size (int): + The maximum number of results per page that + should be returned. + page_token (str): + The page token. + filter (str): + A filter expression that filters the results + listed in the response. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListSpokesResponse(proto.Message): + r"""The response for + [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. + + Attributes: + spokes (MutableSequence[google.cloud.networkconnectivity_v1alpha1.types.Spoke]): + Spokes to be returned. + next_page_token (str): + The next pagination token in the List response. It should be + used as page_token for the following request. An empty value + means no more result. + unreachable (MutableSequence[str]): + Locations that could not be reached. + """ + + @property + def raw_page(self): + return self + + spokes: MutableSequence['Spoke'] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message='Spoke', + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class GetSpokeRequest(proto.Message): + r"""The request for + [HubService.GetSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke]. + + Attributes: + name (str): + Required. The name of Spoke resource. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +class CreateSpokeRequest(proto.Message): + r"""The request for + [HubService.CreateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke]. + + Attributes: + parent (str): + Required. The parent's resource name of the + Spoke. + spoke_id (str): + Optional. Unique id for the Spoke to create. + spoke (google.cloud.networkconnectivity_v1alpha1.types.Spoke): + Required. Initial values for a new Hub. + request_id (str): + Optional. 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. The server will guarantee that + for at least 60 minutes since the first request. + + For example, consider a situation where you make + an initial request and t he 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). + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + spoke_id: str = proto.Field( + proto.STRING, + number=2, + ) + spoke: 'Spoke' = proto.Field( + proto.MESSAGE, + number=3, + message='Spoke', + ) + request_id: str = proto.Field( + proto.STRING, + number=4, + ) + + +class UpdateSpokeRequest(proto.Message): + r"""Request for + [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke] + method. + + Attributes: + update_mask (google.protobuf.field_mask_pb2.FieldMask): + Optional. Field mask is used to specify the fields to be + overwritten in the Spoke resource by the update. The fields + specified in the update_mask are relative to the resource, + not the full request. A field will be overwritten if it is + in the mask. If the user does not provide a mask then all + fields will be overwritten. + spoke (google.cloud.networkconnectivity_v1alpha1.types.Spoke): + Required. The state that the Spoke should be + in after the update. + request_id (str): + Optional. 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. The server will guarantee that + for at least 60 minutes since the first request. + + For example, consider a situation where you make + an initial request and t he 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). + """ + + update_mask: field_mask_pb2.FieldMask = proto.Field( + proto.MESSAGE, + number=1, + message=field_mask_pb2.FieldMask, + ) + spoke: 'Spoke' = proto.Field( + proto.MESSAGE, + number=2, + message='Spoke', + ) + request_id: str = proto.Field( + proto.STRING, + number=3, + ) + + +class DeleteSpokeRequest(proto.Message): + r"""The request for + [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke]. + + Attributes: + name (str): + Required. The name of the Spoke to delete. + request_id (str): + Optional. 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. The server will guarantee that + for at least 60 minutes after the first request. + + For example, consider a situation where you make + an initial request and t he 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). + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + request_id: str = proto.Field( + proto.STRING, + number=2, + ) + + +class RouterApplianceInstance(proto.Message): + r"""RouterAppliance represents a Router appliance which is + specified by a VM URI and a NIC address. + + Attributes: + virtual_machine (str): + The URI of the virtual machine resource + ip_address (str): + The IP address of the network interface to + use for peering. + network_interface (str): + + """ + + virtual_machine: str = proto.Field( + proto.STRING, + number=1, + ) + ip_address: str = proto.Field( + proto.STRING, + number=3, + ) + network_interface: str = proto.Field( + proto.STRING, + number=2, + ) + + +__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/mypy.ini b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/mypy.ini new file mode 100644 index 000000000000..574c5aed394b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/mypy.ini @@ -0,0 +1,3 @@ +[mypy] +python_version = 3.7 +namespace_packages = True diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/noxfile.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/noxfile.py new file mode 100644 index 000000000000..8064dc814515 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/noxfile.py @@ -0,0 +1,184 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import os +import pathlib +import shutil +import subprocess +import sys + + +import nox # type: ignore + +ALL_PYTHON = [ + "3.7", + "3.8", + "3.9", + "3.10", + "3.11", +] + +CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute() + +LOWER_BOUND_CONSTRAINTS_FILE = CURRENT_DIRECTORY / "constraints.txt" +PACKAGE_NAME = subprocess.check_output([sys.executable, "setup.py", "--name"], encoding="utf-8") + +BLACK_VERSION = "black==22.3.0" +BLACK_PATHS = ["docs", "google", "tests", "samples", "noxfile.py", "setup.py"] +DEFAULT_PYTHON_VERSION = "3.11" + +nox.sessions = [ + "unit", + "cover", + "mypy", + "check_lower_bounds" + # exclude update_lower_bounds from default + "docs", + "blacken", + "lint", + "lint_setup_py", +] + +@nox.session(python=ALL_PYTHON) +def unit(session): + """Run the unit test suite.""" + + session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"') + session.install('-e', '.') + + session.run( + 'py.test', + '--quiet', + '--cov=google/cloud/networkconnectivity_v1alpha1/', + '--cov=tests/', + '--cov-config=.coveragerc', + '--cov-report=term', + '--cov-report=html', + os.path.join('tests', 'unit', ''.join(session.posargs)) + ) + + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def cover(session): + """Run the final coverage report. + This outputs the coverage report aggregating coverage from the unit + test runs (not system test runs), and then erases coverage data. + """ + session.install("coverage", "pytest-cov") + session.run("coverage", "report", "--show-missing", "--fail-under=100") + + session.run("coverage", "erase") + + +@nox.session(python=ALL_PYTHON) +def mypy(session): + """Run the type checker.""" + session.install( + 'mypy', + 'types-requests', + 'types-protobuf' + ) + session.install('.') + session.run( + 'mypy', + '--explicit-package-bases', + 'google', + ) + + +@nox.session +def update_lower_bounds(session): + """Update lower bounds in constraints.txt to match setup.py""" + session.install('google-cloud-testutils') + session.install('.') + + session.run( + 'lower-bound-checker', + 'update', + '--package-name', + PACKAGE_NAME, + '--constraints-file', + str(LOWER_BOUND_CONSTRAINTS_FILE), + ) + + +@nox.session +def check_lower_bounds(session): + """Check lower bounds in setup.py are reflected in constraints file""" + session.install('google-cloud-testutils') + session.install('.') + + session.run( + 'lower-bound-checker', + 'check', + '--package-name', + PACKAGE_NAME, + '--constraints-file', + str(LOWER_BOUND_CONSTRAINTS_FILE), + ) + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def docs(session): + """Build the docs for this library.""" + + session.install("-e", ".") + session.install("sphinx==7.0.1", "alabaster", "recommonmark") + + shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) + session.run( + "sphinx-build", + "-W", # warnings as errors + "-T", # show full traceback on exception + "-N", # no colors + "-b", + "html", + "-d", + os.path.join("docs", "_build", "doctrees", ""), + os.path.join("docs", ""), + os.path.join("docs", "_build", "html", ""), + ) + + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def lint(session): + """Run linters. + + Returns a failure if the linters find linting errors or sufficiently + serious code quality issues. + """ + session.install("flake8", BLACK_VERSION) + session.run( + "black", + "--check", + *BLACK_PATHS, + ) + session.run("flake8", "google", "tests", "samples") + + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def blacken(session): + """Run black. Format code to uniform standard.""" + session.install(BLACK_VERSION) + session.run( + "black", + *BLACK_PATHS, + ) + + +@nox.session(python=DEFAULT_PYTHON_VERSION) +def lint_setup_py(session): + """Verify that setup.py is valid (including RST check).""" + session.install("docutils", "pygments") + session.run("python", "setup.py", "check", "--restructuredtext", "--strict") diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py new file mode 100644 index 000000000000..f71e88b4ea86 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreateHub +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_CreateHub_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_create_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.CreateHubRequest( + parent="parent_value", + ) + + # Make the request + operation = client.create_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_CreateHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py new file mode 100644 index 000000000000..43688bbe4272 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreateHub +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_CreateHub_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 networkconnectivity_v1alpha1 + + +def sample_create_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.CreateHubRequest( + parent="parent_value", + ) + + # Make the request + operation = client.create_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_CreateHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py new file mode 100644 index 000000000000..debf60dcae98 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreateSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_create_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.CreateSpokeRequest( + parent="parent_value", + ) + + # Make the request + operation = client.create_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py new file mode 100644 index 000000000000..14487d80ccab --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 CreateSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_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 networkconnectivity_v1alpha1 + + +def sample_create_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.CreateSpokeRequest( + parent="parent_value", + ) + + # Make the request + operation = client.create_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py new file mode 100644 index 000000000000..fd3a2fe3c41b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeleteHub +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_DeleteHub_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_delete_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.DeleteHubRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_DeleteHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py new file mode 100644 index 000000000000..c117bcc7636e --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeleteHub +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_DeleteHub_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 networkconnectivity_v1alpha1 + + +def sample_delete_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.DeleteHubRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_DeleteHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py new file mode 100644 index 000000000000..f3a26998dbca --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeleteSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py new file mode 100644 index 000000000000..7a11e37e9ad5 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 DeleteSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_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 networkconnectivity_v1alpha1 + + +def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py new file mode 100644 index 000000000000..22ce9ffbd59b --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetHub +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_GetHub_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_get_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.GetHubRequest( + name="name_value", + ) + + # Make the request + response = await client.get_hub(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_GetHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py new file mode 100644 index 000000000000..eb11b71431ec --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetHub +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_GetHub_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 networkconnectivity_v1alpha1 + + +def sample_get_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.GetHubRequest( + name="name_value", + ) + + # Make the request + response = client.get_hub(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_GetHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py new file mode 100644 index 000000000000..0d28cbd28635 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_GetSpoke_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_get_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.GetSpokeRequest( + name="name_value", + ) + + # Make the request + response = await client.get_spoke(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_GetSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py new file mode 100644 index 000000000000..88fe0ef3cf71 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 GetSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_GetSpoke_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 networkconnectivity_v1alpha1 + + +def sample_get_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.GetSpokeRequest( + name="name_value", + ) + + # Make the request + response = client.get_spoke(request=request) + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_GetSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py new file mode 100644 index 000000000000..3d9e628ffeac --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListHubs +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_ListHubs_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_list_hubs(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.ListHubsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_hubs(request=request) + + # Handle the response + async for response in page_result: + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_ListHubs_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py new file mode 100644 index 000000000000..7f68489a6034 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListHubs +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_ListHubs_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 networkconnectivity_v1alpha1 + + +def sample_list_hubs(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.ListHubsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_hubs(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_ListHubs_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py new file mode 100644 index 000000000000..d77edbfb4636 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListSpokes +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_ListSpokes_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_list_spokes(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.ListSpokesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_spokes(request=request) + + # Handle the response + async for response in page_result: + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_ListSpokes_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py new file mode 100644 index 000000000000..67f22dbbe013 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 ListSpokes +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_ListSpokes_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 networkconnectivity_v1alpha1 + + +def sample_list_spokes(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.ListSpokesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_spokes(request=request) + + # Handle the response + for response in page_result: + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_ListSpokes_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py new file mode 100644 index 000000000000..84bdc2e47120 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 UpdateHub +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_UpdateHub_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_update_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.UpdateHubRequest( + ) + + # Make the request + operation = client.update_hub(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_UpdateHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py new file mode 100644 index 000000000000..39eb93404165 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 UpdateHub +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_UpdateHub_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 networkconnectivity_v1alpha1 + + +def sample_update_hub(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.UpdateHubRequest( + ) + + # Make the request + operation = client.update_hub(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_UpdateHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py new file mode 100644 index 000000000000..d98ce6cd34c7 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 UpdateSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_async] +# 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 networkconnectivity_v1alpha1 + + +async def sample_update_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.UpdateSpokeRequest( + ) + + # Make the request + operation = client.update_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py new file mode 100644 index 000000000000..f2ee728101d7 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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 UpdateSpoke +# 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-network-connectivity + + +# [START networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_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 networkconnectivity_v1alpha1 + + +def sample_update_spoke(): + # Create a client + client = networkconnectivity_v1alpha1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1alpha1.UpdateSpokeRequest( + ) + + # Make the request + operation = client.update_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + +# [END networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json new file mode 100644 index 000000000000..7d9f482d0d17 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json @@ -0,0 +1,1673 @@ +{ + "clientLibrary": { + "apis": [ + { + "id": "google.cloud.networkconnectivity.v1alpha1", + "version": "v1alpha1" + } + ], + "language": "PYTHON", + "name": "google-cloud-network-connectivity", + "version": "0.1.0" + }, + "snippets": [ + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.create_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "CreateHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "hub", + "type": "google.cloud.networkconnectivity_v1alpha1.types.Hub" + }, + { + "name": "hub_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "create_hub" + }, + "description": "Sample for CreateHub", + "file": "networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_CreateHub_async", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.create_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "CreateHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "hub", + "type": "google.cloud.networkconnectivity_v1alpha1.types.Hub" + }, + { + "name": "hub_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "create_hub" + }, + "description": "Sample for CreateHub", + "file": "networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_CreateHub_sync", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.create_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "CreateSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "spoke", + "type": "google.cloud.networkconnectivity_v1alpha1.types.Spoke" + }, + { + "name": "spoke_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "create_spoke" + }, + "description": "Sample for CreateSpoke", + "file": "networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_async", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.create_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "CreateSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "spoke", + "type": "google.cloud.networkconnectivity_v1alpha1.types.Spoke" + }, + { + "name": "spoke_id", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "create_spoke" + }, + "description": "Sample for CreateSpoke", + "file": "networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_sync", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.delete_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "DeleteHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "delete_hub" + }, + "description": "Sample for DeleteHub", + "file": "networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_DeleteHub_async", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.delete_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "DeleteHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "delete_hub" + }, + "description": "Sample for DeleteHub", + "file": "networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_DeleteHub_sync", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.delete_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "DeleteSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "delete_spoke" + }, + "description": "Sample for DeleteSpoke", + "file": "networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_async", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.delete_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "DeleteSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "delete_spoke" + }, + "description": "Sample for DeleteSpoke", + "file": "networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_sync", + "segments": [ + { + "end": 55, + "start": 27, + "type": "FULL" + }, + { + "end": 55, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 45, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 52, + "start": 46, + "type": "REQUEST_EXECUTION" + }, + { + "end": 56, + "start": 53, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.get_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.GetHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "GetHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1alpha1.types.Hub", + "shortName": "get_hub" + }, + "description": "Sample for GetHub", + "file": "networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_GetHub_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.get_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.GetHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "GetHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1alpha1.types.Hub", + "shortName": "get_hub" + }, + "description": "Sample for GetHub", + "file": "networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_GetHub_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.get_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "GetSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1alpha1.types.Spoke", + "shortName": "get_spoke" + }, + "description": "Sample for GetSpoke", + "file": "networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_GetSpoke_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.get_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "GetSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1alpha1.types.Spoke", + "shortName": "get_spoke" + }, + "description": "Sample for GetSpoke", + "file": "networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_GetSpoke_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.list_hubs", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubs" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListHubsAsyncPager", + "shortName": "list_hubs" + }, + "description": "Sample for ListHubs", + "file": "networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_ListHubs_async", + "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": "networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.list_hubs", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubs" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListHubsPager", + "shortName": "list_hubs" + }, + "description": "Sample for ListHubs", + "file": "networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_ListHubs_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": "networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.list_spokes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "ListSpokes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListSpokesAsyncPager", + "shortName": "list_spokes" + }, + "description": "Sample for ListSpokes", + "file": "networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_ListSpokes_async", + "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": "networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.list_spokes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "ListSpokes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListSpokesPager", + "shortName": "list_spokes" + }, + "description": "Sample for ListSpokes", + "file": "networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_ListSpokes_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": "networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.update_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "UpdateHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest" + }, + { + "name": "hub", + "type": "google.cloud.networkconnectivity_v1alpha1.types.Hub" + }, + { + "name": "update_mask", + "type": "google.protobuf.field_mask_pb2.FieldMask" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "update_hub" + }, + "description": "Sample for UpdateHub", + "file": "networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_UpdateHub_async", + "segments": [ + { + "end": 54, + "start": 27, + "type": "FULL" + }, + { + "end": 54, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 44, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 51, + "start": 45, + "type": "REQUEST_EXECUTION" + }, + { + "end": 55, + "start": 52, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.update_hub", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "UpdateHub" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest" + }, + { + "name": "hub", + "type": "google.cloud.networkconnectivity_v1alpha1.types.Hub" + }, + { + "name": "update_mask", + "type": "google.protobuf.field_mask_pb2.FieldMask" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "update_hub" + }, + "description": "Sample for UpdateHub", + "file": "networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_UpdateHub_sync", + "segments": [ + { + "end": 54, + "start": 27, + "type": "FULL" + }, + { + "end": 54, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 44, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 51, + "start": 45, + "type": "REQUEST_EXECUTION" + }, + { + "end": 55, + "start": 52, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.update_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "UpdateSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest" + }, + { + "name": "spoke", + "type": "google.cloud.networkconnectivity_v1alpha1.types.Spoke" + }, + { + "name": "update_mask", + "type": "google.protobuf.field_mask_pb2.FieldMask" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "update_spoke" + }, + "description": "Sample for UpdateSpoke", + "file": "networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_async", + "segments": [ + { + "end": 54, + "start": 27, + "type": "FULL" + }, + { + "end": 54, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 44, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 51, + "start": 45, + "type": "REQUEST_EXECUTION" + }, + { + "end": 55, + "start": 52, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.update_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", + "shortName": "HubService" + }, + "shortName": "UpdateSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest" + }, + { + "name": "spoke", + "type": "google.cloud.networkconnectivity_v1alpha1.types.Spoke" + }, + { + "name": "update_mask", + "type": "google.protobuf.field_mask_pb2.FieldMask" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "update_spoke" + }, + "description": "Sample for UpdateSpoke", + "file": "networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_sync", + "segments": [ + { + "end": 54, + "start": 27, + "type": "FULL" + }, + { + "end": 54, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 44, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 51, + "start": 45, + "type": "REQUEST_EXECUTION" + }, + { + "end": 55, + "start": 52, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py" + } + ] +} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/scripts/fixup_networkconnectivity_v1alpha1_keywords.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/scripts/fixup_networkconnectivity_v1alpha1_keywords.py new file mode 100644 index 000000000000..11daf2a1a661 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/scripts/fixup_networkconnectivity_v1alpha1_keywords.py @@ -0,0 +1,185 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import argparse +import os +import libcst as cst +import pathlib +import sys +from typing import (Any, Callable, Dict, List, Sequence, Tuple) + + +def partition( + predicate: Callable[[Any], bool], + iterator: Sequence[Any] +) -> Tuple[List[Any], List[Any]]: + """A stable, out-of-place partition.""" + results = ([], []) + + for i in iterator: + results[int(predicate(i))].append(i) + + # Returns trueList, falseList + return results[1], results[0] + + +class networkconnectivityCallTransformer(cst.CSTTransformer): + CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata') + METHOD_TO_PARAMS: Dict[str, Tuple[str]] = { + 'create_hub': ('parent', 'hub', 'hub_id', 'request_id', ), + 'create_spoke': ('parent', 'spoke', 'spoke_id', 'request_id', ), + 'delete_hub': ('name', 'request_id', ), + 'delete_spoke': ('name', 'request_id', ), + 'get_hub': ('name', ), + 'get_spoke': ('name', ), + 'list_hubs': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'list_spokes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'update_hub': ('hub', 'update_mask', 'request_id', ), + 'update_spoke': ('spoke', 'update_mask', 'request_id', ), + } + + def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode: + try: + key = original.func.attr.value + kword_params = self.METHOD_TO_PARAMS[key] + except (AttributeError, KeyError): + # Either not a method from the API or too convoluted to be sure. + return updated + + # If the existing code is valid, keyword args come after positional args. + # Therefore, all positional args must map to the first parameters. + args, kwargs = partition(lambda a: not bool(a.keyword), updated.args) + if any(k.keyword.value == "request" for k in kwargs): + # We've already fixed this file, don't fix it again. + return updated + + kwargs, ctrl_kwargs = partition( + lambda a: a.keyword.value not in self.CTRL_PARAMS, + kwargs + ) + + args, ctrl_args = args[:len(kword_params)], args[len(kword_params):] + ctrl_kwargs.extend(cst.Arg(value=a.value, keyword=cst.Name(value=ctrl)) + for a, ctrl in zip(ctrl_args, self.CTRL_PARAMS)) + + request_arg = cst.Arg( + value=cst.Dict([ + cst.DictElement( + cst.SimpleString("'{}'".format(name)), +cst.Element(value=arg.value) + ) + # Note: the args + kwargs looks silly, but keep in mind that + # the control parameters had to be stripped out, and that + # those could have been passed positionally or by keyword. + for name, arg in zip(kword_params, args + kwargs)]), + keyword=cst.Name("request") + ) + + return updated.with_changes( + args=[request_arg] + ctrl_kwargs + ) + + +def fix_files( + in_dir: pathlib.Path, + out_dir: pathlib.Path, + *, + transformer=networkconnectivityCallTransformer(), +): + """Duplicate the input dir to the output dir, fixing file method calls. + + Preconditions: + * in_dir is a real directory + * out_dir is a real, empty directory + """ + pyfile_gen = ( + pathlib.Path(os.path.join(root, f)) + for root, _, files in os.walk(in_dir) + for f in files if os.path.splitext(f)[1] == ".py" + ) + + for fpath in pyfile_gen: + with open(fpath, 'r') as f: + src = f.read() + + # Parse the code and insert method call fixes. + tree = cst.parse_module(src) + updated = tree.visit(transformer) + + # Create the path and directory structure for the new file. + updated_path = out_dir.joinpath(fpath.relative_to(in_dir)) + updated_path.parent.mkdir(parents=True, exist_ok=True) + + # Generate the updated source file at the corresponding path. + with open(updated_path, 'w') as f: + f.write(updated.code) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description="""Fix up source that uses the networkconnectivity client library. + +The existing sources are NOT overwritten but are copied to output_dir with changes made. + +Note: This tool operates at a best-effort level at converting positional + parameters in client method calls to keyword based parameters. + Cases where it WILL FAIL include + A) * or ** expansion in a method call. + B) Calls via function or method alias (includes free function calls) + C) Indirect or dispatched calls (e.g. the method is looked up dynamically) + + These all constitute false negatives. The tool will also detect false + positives when an API method shares a name with another method. +""") + parser.add_argument( + '-d', + '--input-directory', + required=True, + dest='input_dir', + help='the input directory to walk for python files to fix up', + ) + parser.add_argument( + '-o', + '--output-directory', + required=True, + dest='output_dir', + help='the directory to output files fixed via un-flattening', + ) + args = parser.parse_args() + input_dir = pathlib.Path(args.input_dir) + output_dir = pathlib.Path(args.output_dir) + if not input_dir.is_dir(): + print( + f"input directory '{input_dir}' does not exist or is not a directory", + file=sys.stderr, + ) + sys.exit(-1) + + if not output_dir.is_dir(): + print( + f"output directory '{output_dir}' does not exist or is not a directory", + file=sys.stderr, + ) + sys.exit(-1) + + if os.listdir(output_dir): + print( + f"output directory '{output_dir}' is not empty", + file=sys.stderr, + ) + sys.exit(-1) + + fix_files(input_dir, output_dir) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/setup.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/setup.py new file mode 100644 index 000000000000..e29093268a96 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/setup.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import io +import os + +import setuptools # type: ignore + +package_root = os.path.abspath(os.path.dirname(__file__)) + +name = 'google-cloud-network-connectivity' + + +description = "Google Cloud Network Connectivity API client library" + +version = {} +with open(os.path.join(package_root, 'google/cloud/networkconnectivity/gapic_version.py')) as fp: + exec(fp.read(), version) +version = version["__version__"] + +if version[0] == "0": + release_status = "Development Status :: 4 - Beta" +else: + release_status = "Development Status :: 5 - Production/Stable" + +dependencies = [ + "google-api-core[grpc] >= 1.34.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "proto-plus >= 1.22.0, <2.0.0dev", + "proto-plus >= 1.22.2, <2.0.0dev; python_version>='3.11'", + "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", +] +url = "https://github.com/googleapis/python-network-connectivity" + +package_root = os.path.abspath(os.path.dirname(__file__)) + +readme_filename = os.path.join(package_root, "README.rst") +with io.open(readme_filename, encoding="utf-8") as readme_file: + readme = readme_file.read() + +packages = [ + package + for package in setuptools.PEP420PackageFinder.find() + if package.startswith("google") +] + +namespaces = ["google", "google.cloud"] + +setuptools.setup( + name=name, + version=version, + description=description, + long_description=readme, + author="Google LLC", + author_email="googleapis-packages@google.com", + license="Apache 2.0", + url=url, + classifiers=[ + release_status, + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Operating System :: OS Independent", + "Topic :: Internet", + ], + platforms="Posix; MacOS X; Windows", + packages=packages, + python_requires=">=3.7", + namespace_packages=namespaces, + install_requires=dependencies, + include_package_data=True, + zip_safe=False, +) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.10.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.10.txt new file mode 100644 index 000000000000..ed7f9aed2559 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.10.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.11.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.11.txt new file mode 100644 index 000000000000..ed7f9aed2559 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.11.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.12.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.12.txt new file mode 100644 index 000000000000..ed7f9aed2559 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.12.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.7.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.7.txt new file mode 100644 index 000000000000..6c44adfea7ee --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.7.txt @@ -0,0 +1,9 @@ +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file. +# Pin the version to the lower bound. +# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", +# Then this file should have google-cloud-foo==1.14.0 +google-api-core==1.34.0 +proto-plus==1.22.0 +protobuf==3.19.5 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.8.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.8.txt new file mode 100644 index 000000000000..ed7f9aed2559 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.8.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.9.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.9.txt new file mode 100644 index 000000000000..ed7f9aed2559 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.9.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/__init__.py new file mode 100644 index 000000000000..1b4db446eb8d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/__init__.py @@ -0,0 +1,16 @@ + +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/__init__.py new file mode 100644 index 000000000000..1b4db446eb8d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/__init__.py @@ -0,0 +1,16 @@ + +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/__init__.py new file mode 100644 index 000000000000..1b4db446eb8d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/__init__.py @@ -0,0 +1,16 @@ + +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/__init__.py new file mode 100644 index 000000000000..1b4db446eb8d --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/__init__.py @@ -0,0 +1,16 @@ + +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py new file mode 100644 index 000000000000..f3f82b062425 --- /dev/null +++ b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py @@ -0,0 +1,4099 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 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. +# +import os +# try/except added for compatibility with python < 3.8 +try: + from unittest import mock + from unittest.mock import AsyncMock # pragma: NO COVER +except ImportError: # pragma: NO COVER + import mock + +import grpc +from grpc.experimental import aio +import math +import pytest +from proto.marshal.rules.dates import DurationRule, TimestampRule +from proto.marshal.rules import wrappers + +from google.api_core import client_options +from google.api_core import exceptions as core_exceptions +from google.api_core import future +from google.api_core import gapic_v1 +from google.api_core import grpc_helpers +from google.api_core import grpc_helpers_async +from google.api_core import operation +from google.api_core import operation_async # type: ignore +from google.api_core import operations_v1 +from google.api_core import path_template +from google.auth import credentials as ga_credentials +from google.auth.exceptions import MutualTLSChannelError +from google.cloud.networkconnectivity_v1alpha1.services.hub_service import HubServiceAsyncClient +from google.cloud.networkconnectivity_v1alpha1.services.hub_service import HubServiceClient +from google.cloud.networkconnectivity_v1alpha1.services.hub_service import pagers +from google.cloud.networkconnectivity_v1alpha1.services.hub_service import transports +from google.cloud.networkconnectivity_v1alpha1.types import common +from google.cloud.networkconnectivity_v1alpha1.types import hub +from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub +from google.longrunning import operations_pb2 # type: ignore +from google.oauth2 import service_account +from google.protobuf import empty_pb2 # type: ignore +from google.protobuf import field_mask_pb2 # type: ignore +from google.protobuf import timestamp_pb2 # type: ignore +import google.auth + + +def client_cert_source_callback(): + return b"cert bytes", b"key bytes" + + +# If default endpoint is localhost, then default mtls endpoint will be the same. +# This method modifies the default endpoint so the client can produce a different +# mtls endpoint for endpoint testing purposes. +def modify_default_endpoint(client): + return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT + + +def test__get_default_mtls_endpoint(): + api_endpoint = "example.googleapis.com" + api_mtls_endpoint = "example.mtls.googleapis.com" + sandbox_endpoint = "example.sandbox.googleapis.com" + sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com" + non_googleapi = "api.example.com" + + assert HubServiceClient._get_default_mtls_endpoint(None) is None + assert HubServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint + assert HubServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint + assert HubServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint + assert HubServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint + assert HubServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi + + +@pytest.mark.parametrize("client_class,transport_name", [ + (HubServiceClient, "grpc"), + (HubServiceAsyncClient, "grpc_asyncio"), +]) +def test_hub_service_client_from_service_account_info(client_class, transport_name): + creds = ga_credentials.AnonymousCredentials() + with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory: + factory.return_value = creds + info = {"valid": True} + client = client_class.from_service_account_info(info, transport=transport_name) + assert client.transport._credentials == creds + assert isinstance(client, client_class) + + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:443' + ) + + +@pytest.mark.parametrize("transport_class,transport_name", [ + (transports.HubServiceGrpcTransport, "grpc"), + (transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), +]) +def test_hub_service_client_service_account_always_use_jwt(transport_class, transport_name): + with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: + creds = service_account.Credentials(None, None, None) + transport = transport_class(credentials=creds, always_use_jwt_access=True) + use_jwt.assert_called_once_with(True) + + with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: + creds = service_account.Credentials(None, None, None) + transport = transport_class(credentials=creds, always_use_jwt_access=False) + use_jwt.assert_not_called() + + +@pytest.mark.parametrize("client_class,transport_name", [ + (HubServiceClient, "grpc"), + (HubServiceAsyncClient, "grpc_asyncio"), +]) +def test_hub_service_client_from_service_account_file(client_class, transport_name): + creds = ga_credentials.AnonymousCredentials() + with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory: + factory.return_value = creds + client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name) + assert client.transport._credentials == creds + assert isinstance(client, client_class) + + client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name) + assert client.transport._credentials == creds + assert isinstance(client, client_class) + + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:443' + ) + + +def test_hub_service_client_get_transport_class(): + transport = HubServiceClient.get_transport_class() + available_transports = [ + transports.HubServiceGrpcTransport, + ] + assert transport in available_transports + + transport = HubServiceClient.get_transport_class("grpc") + assert transport == transports.HubServiceGrpcTransport + + +@pytest.mark.parametrize("client_class,transport_class,transport_name", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc"), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), +]) +@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) +@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) +def test_hub_service_client_client_options(client_class, transport_class, transport_name): + # Check that if channel is provided we won't create a new one. + with mock.patch.object(HubServiceClient, 'get_transport_class') as gtc: + transport = transport_class( + credentials=ga_credentials.AnonymousCredentials() + ) + client = client_class(transport=transport) + gtc.assert_not_called() + + # Check that if channel is provided via str we will create a new one. + with mock.patch.object(HubServiceClient, 'get_transport_class') as gtc: + client = client_class(transport=transport_name) + gtc.assert_called() + + # Check the case api_endpoint is provided. + options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(transport=transport_name, client_options=options) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host="squid.clam.whelk", + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is + # "never". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is + # "always". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_MTLS_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has + # unsupported value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}): + with pytest.raises(MutualTLSChannelError): + client = client_class(transport=transport_name) + + # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}): + with pytest.raises(ValueError): + client = client_class(transport=transport_name) + + # Check the case quota_project_id is provided + options = client_options.ClientOptions(quota_project_id="octopus") + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id="octopus", + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + # Check the case api_endpoint is provided + options = client_options.ClientOptions(api_audience="https://language.googleapis.com") + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience="https://language.googleapis.com" + ) + +@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", "true"), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"), + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", "false"), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"), +]) +@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) +@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) +@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}) +def test_hub_service_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env): + # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default + # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists. + + # Check the case client_cert_source is provided. Whether client cert is used depends on + # GOOGLE_API_USE_CLIENT_CERTIFICATE value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): + options = client_options.ClientOptions(client_cert_source=client_cert_source_callback) + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + + if use_client_cert_env == "false": + expected_client_cert_source = None + expected_host = client.DEFAULT_ENDPOINT + else: + expected_client_cert_source = client_cert_source_callback + expected_host = client.DEFAULT_MTLS_ENDPOINT + + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=expected_host, + scopes=None, + client_cert_source_for_mtls=expected_client_cert_source, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case ADC client cert is provided. Whether client cert is used depends on + # GOOGLE_API_USE_CLIENT_CERTIFICATE value. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): + with mock.patch.object(transport_class, '__init__') as patched: + with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): + with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback): + if use_client_cert_env == "false": + expected_host = client.DEFAULT_ENDPOINT + expected_client_cert_source = None + else: + expected_host = client.DEFAULT_MTLS_ENDPOINT + expected_client_cert_source = client_cert_source_callback + + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=expected_host, + scopes=None, + client_cert_source_for_mtls=expected_client_cert_source, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # Check the case client_cert_source and ADC client cert are not provided. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): + with mock.patch.object(transport_class, '__init__') as patched: + with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False): + patched.return_value = None + client = client_class(transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + +@pytest.mark.parametrize("client_class", [ + HubServiceClient, HubServiceAsyncClient +]) +@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) +@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) +def test_hub_service_client_get_mtls_endpoint_and_cert_source(client_class): + mock_client_cert_source = mock.Mock() + + # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): + mock_api_endpoint = "foo" + options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) + assert api_endpoint == mock_api_endpoint + assert cert_source == mock_client_cert_source + + # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}): + mock_client_cert_source = mock.Mock() + mock_api_endpoint = "foo" + options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) + assert api_endpoint == mock_api_endpoint + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_ENDPOINT + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always". + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): + with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_ENDPOINT + assert cert_source is None + + # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists. + with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): + with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): + with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source): + api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() + assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT + assert cert_source == mock_client_cert_source + + +@pytest.mark.parametrize("client_class,transport_class,transport_name", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc"), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), +]) +def test_hub_service_client_client_options_scopes(client_class, transport_class, transport_name): + # Check the case scopes are provided. + options = client_options.ClientOptions( + scopes=["1", "2"], + ) + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=["1", "2"], + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + +@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", grpc_helpers), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), +]) +def test_hub_service_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers): + # Check the case credentials file is provided. + options = client_options.ClientOptions( + credentials_file="credentials.json" + ) + + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file="credentials.json", + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + +def test_hub_service_client_client_options_from_dict(): + with mock.patch('google.cloud.networkconnectivity_v1alpha1.services.hub_service.transports.HubServiceGrpcTransport.__init__') as grpc_transport: + grpc_transport.return_value = None + client = HubServiceClient( + client_options={'api_endpoint': 'squid.clam.whelk'} + ) + grpc_transport.assert_called_once_with( + credentials=None, + credentials_file=None, + host="squid.clam.whelk", + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + +@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ + (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", grpc_helpers), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), +]) +def test_hub_service_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers): + # Check the case credentials file is provided. + options = client_options.ClientOptions( + credentials_file="credentials.json" + ) + + with mock.patch.object(transport_class, '__init__') as patched: + patched.return_value = None + client = client_class(client_options=options, transport=transport_name) + patched.assert_called_once_with( + credentials=None, + credentials_file="credentials.json", + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) + + # test that the credentials from file are saved and used as the credentials. + with mock.patch.object( + google.auth, "load_credentials_from_file", autospec=True + ) as load_creds, mock.patch.object( + google.auth, "default", autospec=True + ) as adc, mock.patch.object( + grpc_helpers, "create_channel" + ) as create_channel: + creds = ga_credentials.AnonymousCredentials() + file_creds = ga_credentials.AnonymousCredentials() + load_creds.return_value = (file_creds, None) + adc.return_value = (creds, None) + client = client_class(client_options=options, transport=transport_name) + create_channel.assert_called_with( + "networkconnectivity.googleapis.com:443", + credentials=file_creds, + credentials_file=None, + quota_project_id=None, + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + scopes=None, + default_host="networkconnectivity.googleapis.com", + ssl_credentials=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + +@pytest.mark.parametrize("request_type", [ + hub.ListHubsRequest, + dict, +]) +def test_list_hubs(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListHubsResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + ) + response = client.list_hubs(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListHubsRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListHubsPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +def test_list_hubs_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + client.list_hubs() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListHubsRequest() + +@pytest.mark.asyncio +async def test_list_hubs_async(transport: str = 'grpc_asyncio', request_type=hub.ListHubsRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + )) + response = await client.list_hubs(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListHubsRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListHubsAsyncPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +@pytest.mark.asyncio +async def test_list_hubs_async_from_dict(): + await test_list_hubs_async(request_type=dict) + + +def test_list_hubs_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListHubsRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + call.return_value = hub.ListHubsResponse() + client.list_hubs(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_list_hubs_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListHubsRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse()) + await client.list_hubs(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_list_hubs_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListHubsResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_hubs( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + + +def test_list_hubs_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_hubs( + hub.ListHubsRequest(), + parent='parent_value', + ) + +@pytest.mark.asyncio +async def test_list_hubs_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListHubsResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_hubs( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_list_hubs_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_hubs( + hub.ListHubsRequest(), + parent='parent_value', + ) + + +def test_list_hubs_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + hub.Hub(), + ], + next_page_token='abc', + ), + hub.ListHubsResponse( + hubs=[], + next_page_token='def', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + ], + next_page_token='ghi', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ('parent', ''), + )), + ) + pager = client.list_hubs(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Hub) + for i in results) +def test_list_hubs_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + hub.Hub(), + ], + next_page_token='abc', + ), + hub.ListHubsResponse( + hubs=[], + next_page_token='def', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + ], + next_page_token='ghi', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + ], + ), + RuntimeError, + ) + pages = list(client.list_hubs(request={}).pages) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.asyncio +async def test_list_hubs_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + hub.Hub(), + ], + next_page_token='abc', + ), + hub.ListHubsResponse( + hubs=[], + next_page_token='def', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + ], + next_page_token='ghi', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_hubs(request={},) + assert async_pager.next_page_token == 'abc' + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Hub) + for i in responses) + + +@pytest.mark.asyncio +async def test_list_hubs_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_hubs), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + hub.Hub(), + ], + next_page_token='abc', + ), + hub.ListHubsResponse( + hubs=[], + next_page_token='def', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + ], + next_page_token='ghi', + ), + hub.ListHubsResponse( + hubs=[ + hub.Hub(), + hub.Hub(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_hubs(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.parametrize("request_type", [ + hub.GetHubRequest, + dict, +]) +def test_get_hub(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Hub( + name='name_value', + description='description_value', + spokes=['spokes_value'], + unique_id='unique_id_value', + state=hub.State.CREATING, + ) + response = client.get_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Hub) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.spokes == ['spokes_value'] + assert response.unique_id == 'unique_id_value' + assert response.state == hub.State.CREATING + + +def test_get_hub_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + client.get_hub() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetHubRequest() + +@pytest.mark.asyncio +async def test_get_hub_async(transport: str = 'grpc_asyncio', request_type=hub.GetHubRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub( + name='name_value', + description='description_value', + spokes=['spokes_value'], + unique_id='unique_id_value', + state=hub.State.CREATING, + )) + response = await client.get_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Hub) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.spokes == ['spokes_value'] + assert response.unique_id == 'unique_id_value' + assert response.state == hub.State.CREATING + + +@pytest.mark.asyncio +async def test_get_hub_async_from_dict(): + await test_get_hub_async(request_type=dict) + + +def test_get_hub_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetHubRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + call.return_value = hub.Hub() + client.get_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_get_hub_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetHubRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub()) + await client.get_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_get_hub_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Hub() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_hub( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_get_hub_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_hub( + hub.GetHubRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_get_hub_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Hub() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_hub( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_get_hub_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_hub( + hub.GetHubRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + gcn_hub.CreateHubRequest, + dict, +]) +def test_create_hub(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.create_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.CreateHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_create_hub_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + client.create_hub() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.CreateHubRequest() + +@pytest.mark.asyncio +async def test_create_hub_async(transport: str = 'grpc_asyncio', request_type=gcn_hub.CreateHubRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.create_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.CreateHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_create_hub_async_from_dict(): + await test_create_hub_async(request_type=dict) + + +def test_create_hub_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = gcn_hub.CreateHubRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.create_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_create_hub_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = gcn_hub.CreateHubRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.create_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_create_hub_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.create_hub( + parent='parent_value', + hub=gcn_hub.Hub(name='name_value'), + hub_id='hub_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].hub + mock_val = gcn_hub.Hub(name='name_value') + assert arg == mock_val + arg = args[0].hub_id + mock_val = 'hub_id_value' + assert arg == mock_val + + +def test_create_hub_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.create_hub( + gcn_hub.CreateHubRequest(), + parent='parent_value', + hub=gcn_hub.Hub(name='name_value'), + hub_id='hub_id_value', + ) + +@pytest.mark.asyncio +async def test_create_hub_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.create_hub( + parent='parent_value', + hub=gcn_hub.Hub(name='name_value'), + hub_id='hub_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].hub + mock_val = gcn_hub.Hub(name='name_value') + assert arg == mock_val + arg = args[0].hub_id + mock_val = 'hub_id_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_create_hub_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.create_hub( + gcn_hub.CreateHubRequest(), + parent='parent_value', + hub=gcn_hub.Hub(name='name_value'), + hub_id='hub_id_value', + ) + + +@pytest.mark.parametrize("request_type", [ + gcn_hub.UpdateHubRequest, + dict, +]) +def test_update_hub(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.update_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.UpdateHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_update_hub_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + client.update_hub() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.UpdateHubRequest() + +@pytest.mark.asyncio +async def test_update_hub_async(transport: str = 'grpc_asyncio', request_type=gcn_hub.UpdateHubRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.update_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == gcn_hub.UpdateHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_update_hub_async_from_dict(): + await test_update_hub_async(request_type=dict) + + +def test_update_hub_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = gcn_hub.UpdateHubRequest() + + request.hub.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.update_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'hub.name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_update_hub_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = gcn_hub.UpdateHubRequest() + + request.hub.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.update_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'hub.name=name_value', + ) in kw['metadata'] + + +def test_update_hub_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.update_hub( + hub=gcn_hub.Hub(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].hub + mock_val = gcn_hub.Hub(name='name_value') + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) + assert arg == mock_val + + +def test_update_hub_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.update_hub( + gcn_hub.UpdateHubRequest(), + hub=gcn_hub.Hub(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + +@pytest.mark.asyncio +async def test_update_hub_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.update_hub( + hub=gcn_hub.Hub(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].hub + mock_val = gcn_hub.Hub(name='name_value') + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) + assert arg == mock_val + +@pytest.mark.asyncio +async def test_update_hub_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.update_hub( + gcn_hub.UpdateHubRequest(), + hub=gcn_hub.Hub(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + +@pytest.mark.parametrize("request_type", [ + hub.DeleteHubRequest, + dict, +]) +def test_delete_hub(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.delete_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_delete_hub_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + client.delete_hub() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteHubRequest() + +@pytest.mark.asyncio +async def test_delete_hub_async(transport: str = 'grpc_asyncio', request_type=hub.DeleteHubRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.delete_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteHubRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_delete_hub_async_from_dict(): + await test_delete_hub_async(request_type=dict) + + +def test_delete_hub_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteHubRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.delete_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_delete_hub_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteHubRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.delete_hub(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_delete_hub_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.delete_hub( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_delete_hub_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.delete_hub( + hub.DeleteHubRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_delete_hub_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_hub), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.delete_hub( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_delete_hub_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.delete_hub( + hub.DeleteHubRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.ListSpokesRequest, + dict, +]) +def test_list_spokes(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListSpokesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + ) + response = client.list_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListSpokesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListSpokesPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +def test_list_spokes_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + client.list_spokes() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListSpokesRequest() + +@pytest.mark.asyncio +async def test_list_spokes_async(transport: str = 'grpc_asyncio', request_type=hub.ListSpokesRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse( + next_page_token='next_page_token_value', + unreachable=['unreachable_value'], + )) + response = await client.list_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListSpokesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListSpokesAsyncPager) + assert response.next_page_token == 'next_page_token_value' + assert response.unreachable == ['unreachable_value'] + + +@pytest.mark.asyncio +async def test_list_spokes_async_from_dict(): + await test_list_spokes_async(request_type=dict) + + +def test_list_spokes_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListSpokesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + call.return_value = hub.ListSpokesResponse() + client.list_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_list_spokes_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListSpokesRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse()) + await client.list_spokes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_list_spokes_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListSpokesResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_spokes( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + + +def test_list_spokes_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_spokes( + hub.ListSpokesRequest(), + parent='parent_value', + ) + +@pytest.mark.asyncio +async def test_list_spokes_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListSpokesResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_spokes( + parent='parent_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_list_spokes_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_spokes( + hub.ListSpokesRequest(), + parent='parent_value', + ) + + +def test_list_spokes_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata(( + ('parent', ''), + )), + ) + pager = client.list_spokes(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Spoke) + for i in results) +def test_list_spokes_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__') as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + pages = list(client.list_spokes(request={}).pages) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.asyncio +async def test_list_spokes_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_spokes(request={},) + assert async_pager.next_page_token == 'abc' + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Spoke) + for i in responses) + + +@pytest.mark.asyncio +async def test_list_spokes_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), + '__call__', new_callable=mock.AsyncMock) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token='abc', + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token='def', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token='ghi', + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_spokes(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ['abc','def','ghi', '']): + assert page_.raw_page.next_page_token == token + +@pytest.mark.parametrize("request_type", [ + hub.GetSpokeRequest, + dict, +]) +def test_get_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Spoke( + name='name_value', + description='description_value', + hub='hub_value', + linked_vpn_tunnels=['linked_vpn_tunnels_value'], + linked_interconnect_attachments=['linked_interconnect_attachments_value'], + unique_id='unique_id_value', + state=hub.State.CREATING, + ) + response = client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Spoke) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.hub == 'hub_value' + assert response.linked_vpn_tunnels == ['linked_vpn_tunnels_value'] + assert response.linked_interconnect_attachments == ['linked_interconnect_attachments_value'] + assert response.unique_id == 'unique_id_value' + assert response.state == hub.State.CREATING + + +def test_get_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + client.get_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetSpokeRequest() + +@pytest.mark.asyncio +async def test_get_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.GetSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke( + name='name_value', + description='description_value', + hub='hub_value', + linked_vpn_tunnels=['linked_vpn_tunnels_value'], + linked_interconnect_attachments=['linked_interconnect_attachments_value'], + unique_id='unique_id_value', + state=hub.State.CREATING, + )) + response = await client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Spoke) + assert response.name == 'name_value' + assert response.description == 'description_value' + assert response.hub == 'hub_value' + assert response.linked_vpn_tunnels == ['linked_vpn_tunnels_value'] + assert response.linked_interconnect_attachments == ['linked_interconnect_attachments_value'] + assert response.unique_id == 'unique_id_value' + assert response.state == hub.State.CREATING + + +@pytest.mark.asyncio +async def test_get_spoke_async_from_dict(): + await test_get_spoke_async(request_type=dict) + + +def test_get_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + call.return_value = hub.Spoke() + client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_get_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) + await client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_get_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Spoke() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_spoke( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_get_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_spoke( + hub.GetSpokeRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_get_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.get_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Spoke() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_spoke( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_get_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_spoke( + hub.GetSpokeRequest(), + name='name_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.CreateSpokeRequest, + dict, +]) +def test_create_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.CreateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_create_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + client.create_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.CreateSpokeRequest() + +@pytest.mark.asyncio +async def test_create_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.CreateSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.CreateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_create_spoke_async_from_dict(): + await test_create_spoke_async(request_type=dict) + + +def test_create_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.CreateSpokeRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_create_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.CreateSpokeRequest() + + request.parent = 'parent_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'parent=parent_value', + ) in kw['metadata'] + + +def test_create_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.create_spoke( + parent='parent_value', + spoke=hub.Spoke(name='name_value'), + spoke_id='spoke_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].spoke + mock_val = hub.Spoke(name='name_value') + assert arg == mock_val + arg = args[0].spoke_id + mock_val = 'spoke_id_value' + assert arg == mock_val + + +def test_create_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.create_spoke( + hub.CreateSpokeRequest(), + parent='parent_value', + spoke=hub.Spoke(name='name_value'), + spoke_id='spoke_id_value', + ) + +@pytest.mark.asyncio +async def test_create_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.create_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.create_spoke( + parent='parent_value', + spoke=hub.Spoke(name='name_value'), + spoke_id='spoke_id_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = 'parent_value' + assert arg == mock_val + arg = args[0].spoke + mock_val = hub.Spoke(name='name_value') + assert arg == mock_val + arg = args[0].spoke_id + mock_val = 'spoke_id_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_create_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.create_spoke( + hub.CreateSpokeRequest(), + parent='parent_value', + spoke=hub.Spoke(name='name_value'), + spoke_id='spoke_id_value', + ) + + +@pytest.mark.parametrize("request_type", [ + hub.UpdateSpokeRequest, + dict, +]) +def test_update_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.UpdateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_update_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + client.update_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.UpdateSpokeRequest() + +@pytest.mark.asyncio +async def test_update_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.UpdateSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.UpdateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_update_spoke_async_from_dict(): + await test_update_spoke_async(request_type=dict) + + +def test_update_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.UpdateSpokeRequest() + + request.spoke.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'spoke.name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_update_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.UpdateSpokeRequest() + + request.spoke.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'spoke.name=name_value', + ) in kw['metadata'] + + +def test_update_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.update_spoke( + spoke=hub.Spoke(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].spoke + mock_val = hub.Spoke(name='name_value') + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) + assert arg == mock_val + + +def test_update_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.update_spoke( + hub.UpdateSpokeRequest(), + spoke=hub.Spoke(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + +@pytest.mark.asyncio +async def test_update_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.update_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.update_spoke( + spoke=hub.Spoke(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].spoke + mock_val = hub.Spoke(name='name_value') + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) + assert arg == mock_val + +@pytest.mark.asyncio +async def test_update_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.update_spoke( + hub.UpdateSpokeRequest(), + spoke=hub.Spoke(name='name_value'), + update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), + ) + + +@pytest.mark.parametrize("request_type", [ + hub.DeleteSpokeRequest, + dict, +]) +def test_delete_spoke(request_type, transport: str = 'grpc'): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/spam') + response = client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_delete_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + client.delete_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteSpokeRequest() + +@pytest.mark.asyncio +async def test_delete_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.DeleteSpokeRequest): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + response = await client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_delete_spoke_async_from_dict(): + await test_delete_spoke_async(request_type=dict) + + +def test_delete_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + call.return_value = operations_pb2.Operation(name='operations/op') + client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +@pytest.mark.asyncio +async def test_delete_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteSpokeRequest() + + request.name = 'name_value' + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) + await client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + 'x-goog-request-params', + 'name=name_value', + ) in kw['metadata'] + + +def test_delete_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.delete_spoke( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + + +def test_delete_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.delete_spoke( + hub.DeleteSpokeRequest(), + name='name_value', + ) + +@pytest.mark.asyncio +async def test_delete_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.delete_spoke), + '__call__') as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name='operations/op') + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name='operations/spam') + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.delete_spoke( + name='name_value', + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = 'name_value' + assert arg == mock_val + +@pytest.mark.asyncio +async def test_delete_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.delete_spoke( + hub.DeleteSpokeRequest(), + name='name_value', + ) + + +def test_credentials_transport_error(): + # It is an error to provide credentials and a transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # It is an error to provide a credentials file and a transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = HubServiceClient( + client_options={"credentials_file": "credentials.json"}, + transport=transport, + ) + + # It is an error to provide an api_key and a transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + options = client_options.ClientOptions() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = HubServiceClient( + client_options=options, + transport=transport, + ) + + # It is an error to provide an api_key and a credential. + options = mock.Mock() + options.api_key = "api_key" + with pytest.raises(ValueError): + client = HubServiceClient( + client_options=options, + credentials=ga_credentials.AnonymousCredentials() + ) + + # It is an error to provide scopes and a transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + with pytest.raises(ValueError): + client = HubServiceClient( + client_options={"scopes": ["1", "2"]}, + transport=transport, + ) + + +def test_transport_instance(): + # A client may be instantiated with a custom transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + client = HubServiceClient(transport=transport) + assert client.transport is transport + +def test_transport_get_channel(): + # A client may be instantiated with a custom transport instance. + transport = transports.HubServiceGrpcTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + channel = transport.grpc_channel + assert channel + + transport = transports.HubServiceGrpcAsyncIOTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + channel = transport.grpc_channel + assert channel + +@pytest.mark.parametrize("transport_class", [ + transports.HubServiceGrpcTransport, + transports.HubServiceGrpcAsyncIOTransport, +]) +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() + +@pytest.mark.parametrize("transport_name", [ + "grpc", +]) +def test_transport_kind(transport_name): + transport = HubServiceClient.get_transport_class(transport_name)( + credentials=ga_credentials.AnonymousCredentials(), + ) + assert transport.kind == transport_name + +def test_transport_grpc_default(): + # A client should use the gRPC transport by default. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + assert isinstance( + client.transport, + transports.HubServiceGrpcTransport, + ) + +def test_hub_service_base_transport_error(): + # Passing both a credentials object and credentials_file should raise an error + with pytest.raises(core_exceptions.DuplicateCredentialArgs): + transport = transports.HubServiceTransport( + credentials=ga_credentials.AnonymousCredentials(), + credentials_file="credentials.json" + ) + + +def test_hub_service_base_transport(): + # Instantiate the base transport. + with mock.patch('google.cloud.networkconnectivity_v1alpha1.services.hub_service.transports.HubServiceTransport.__init__') as Transport: + Transport.return_value = None + transport = transports.HubServiceTransport( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Every method on the transport should just blindly + # raise NotImplementedError. + methods = ( + 'list_hubs', + 'get_hub', + 'create_hub', + 'update_hub', + 'delete_hub', + 'list_spokes', + 'get_spoke', + 'create_spoke', + 'update_spoke', + 'delete_spoke', + ) + for method in methods: + with pytest.raises(NotImplementedError): + getattr(transport, method)(request=object()) + + with pytest.raises(NotImplementedError): + transport.close() + + # Additionally, the LRO client (a property) should + # also raise NotImplementedError + with pytest.raises(NotImplementedError): + transport.operations_client + + # Catch all for all remaining methods and properties + remainder = [ + 'kind', + ] + for r in remainder: + with pytest.raises(NotImplementedError): + getattr(transport, r)() + + +def test_hub_service_base_transport_with_credentials_file(): + # Instantiate the base transport with a credentials file + with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.networkconnectivity_v1alpha1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages') as Transport: + Transport.return_value = None + load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) + transport = transports.HubServiceTransport( + credentials_file="credentials.json", + quota_project_id="octopus", + ) + load_creds.assert_called_once_with("credentials.json", + scopes=None, + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + quota_project_id="octopus", + ) + + +def test_hub_service_base_transport_with_adc(): + # Test the default credentials are used if credentials and credentials_file are None. + with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.networkconnectivity_v1alpha1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages') as Transport: + Transport.return_value = None + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + transport = transports.HubServiceTransport() + adc.assert_called_once() + + +def test_hub_service_auth_adc(): + # If no credentials are provided, we should use ADC credentials. + with mock.patch.object(google.auth, 'default', autospec=True) as adc: + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + HubServiceClient() + adc.assert_called_once_with( + scopes=None, + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + quota_project_id=None, + ) + + +@pytest.mark.parametrize( + "transport_class", + [ + transports.HubServiceGrpcTransport, + transports.HubServiceGrpcAsyncIOTransport, + ], +) +def test_hub_service_transport_auth_adc(transport_class): + # If credentials and host are not provided, the transport class should use + # ADC credentials. + with mock.patch.object(google.auth, 'default', autospec=True) as adc: + adc.return_value = (ga_credentials.AnonymousCredentials(), None) + transport_class(quota_project_id="octopus", scopes=["1", "2"]) + adc.assert_called_once_with( + scopes=["1", "2"], + default_scopes=( 'https://www.googleapis.com/auth/cloud-platform',), + quota_project_id="octopus", + ) + + +@pytest.mark.parametrize( + "transport_class", + [ + transports.HubServiceGrpcTransport, + transports.HubServiceGrpcAsyncIOTransport, + ], +) +def test_hub_service_transport_auth_gdch_credentials(transport_class): + host = 'https://language.com' + api_audience_tests = [None, 'https://language2.com'] + api_audience_expect = [host, 'https://language2.com'] + for t, e in zip(api_audience_tests, api_audience_expect): + with mock.patch.object(google.auth, 'default', autospec=True) as adc: + gdch_mock = mock.MagicMock() + type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock) + adc.return_value = (gdch_mock, None) + transport_class(host=host, api_audience=t) + gdch_mock.with_gdch_audience.assert_called_once_with( + e + ) + + +@pytest.mark.parametrize( + "transport_class,grpc_helpers", + [ + (transports.HubServiceGrpcTransport, grpc_helpers), + (transports.HubServiceGrpcAsyncIOTransport, grpc_helpers_async) + ], +) +def test_hub_service_transport_create_channel(transport_class, grpc_helpers): + # If credentials and host are not provided, the transport class should use + # ADC credentials. + with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object( + grpc_helpers, "create_channel", autospec=True + ) as create_channel: + creds = ga_credentials.AnonymousCredentials() + adc.return_value = (creds, None) + transport_class( + quota_project_id="octopus", + scopes=["1", "2"] + ) + + create_channel.assert_called_with( + "networkconnectivity.googleapis.com:443", + credentials=creds, + credentials_file=None, + quota_project_id="octopus", + default_scopes=( + 'https://www.googleapis.com/auth/cloud-platform', +), + scopes=["1", "2"], + default_host="networkconnectivity.googleapis.com", + ssl_credentials=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + +@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) +def test_hub_service_grpc_transport_client_cert_source_for_mtls( + transport_class +): + cred = ga_credentials.AnonymousCredentials() + + # Check ssl_channel_credentials is used if provided. + with mock.patch.object(transport_class, "create_channel") as mock_create_channel: + mock_ssl_channel_creds = mock.Mock() + transport_class( + host="squid.clam.whelk", + credentials=cred, + ssl_channel_credentials=mock_ssl_channel_creds + ) + mock_create_channel.assert_called_once_with( + "squid.clam.whelk:443", + credentials=cred, + credentials_file=None, + scopes=None, + ssl_credentials=mock_ssl_channel_creds, + quota_project_id=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + + # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls + # is used. + with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()): + with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred: + transport_class( + credentials=cred, + client_cert_source_for_mtls=client_cert_source_callback + ) + expected_cert, expected_key = client_cert_source_callback() + mock_ssl_cred.assert_called_once_with( + certificate_chain=expected_cert, + private_key=expected_key + ) + + +@pytest.mark.parametrize("transport_name", [ + "grpc", + "grpc_asyncio", +]) +def test_hub_service_host_no_port(transport_name): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com'), + transport=transport_name, + ) + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:443' + ) + +@pytest.mark.parametrize("transport_name", [ + "grpc", + "grpc_asyncio", +]) +def test_hub_service_host_with_port(transport_name): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com:8000'), + transport=transport_name, + ) + assert client.transport._host == ( + 'networkconnectivity.googleapis.com:8000' + ) + +def test_hub_service_grpc_transport_channel(): + channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials()) + + # Check that channel is used if provided. + transport = transports.HubServiceGrpcTransport( + host="squid.clam.whelk", + channel=channel, + ) + assert transport.grpc_channel == channel + assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None + + +def test_hub_service_grpc_asyncio_transport_channel(): + channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials()) + + # Check that channel is used if provided. + transport = transports.HubServiceGrpcAsyncIOTransport( + host="squid.clam.whelk", + channel=channel, + ) + assert transport.grpc_channel == channel + assert transport._host == "squid.clam.whelk:443" + assert transport._ssl_channel_credentials == None + + +# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are +# removed from grpc/grpc_asyncio transport constructor. +@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) +def test_hub_service_transport_channel_mtls_with_client_cert_source( + transport_class +): + with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred: + with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: + mock_ssl_cred = mock.Mock() + grpc_ssl_channel_cred.return_value = mock_ssl_cred + + mock_grpc_channel = mock.Mock() + grpc_create_channel.return_value = mock_grpc_channel + + cred = ga_credentials.AnonymousCredentials() + with pytest.warns(DeprecationWarning): + with mock.patch.object(google.auth, 'default') as adc: + adc.return_value = (cred, None) + transport = transport_class( + host="squid.clam.whelk", + api_mtls_endpoint="mtls.squid.clam.whelk", + client_cert_source=client_cert_source_callback, + ) + adc.assert_called_once() + + grpc_ssl_channel_cred.assert_called_once_with( + certificate_chain=b"cert bytes", private_key=b"key bytes" + ) + grpc_create_channel.assert_called_once_with( + "mtls.squid.clam.whelk:443", + credentials=cred, + credentials_file=None, + scopes=None, + ssl_credentials=mock_ssl_cred, + quota_project_id=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + assert transport.grpc_channel == mock_grpc_channel + assert transport._ssl_channel_credentials == mock_ssl_cred + + +# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are +# removed from grpc/grpc_asyncio transport constructor. +@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) +def test_hub_service_transport_channel_mtls_with_adc( + transport_class +): + mock_ssl_cred = mock.Mock() + with mock.patch.multiple( + "google.auth.transport.grpc.SslCredentials", + __init__=mock.Mock(return_value=None), + ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred), + ): + with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: + mock_grpc_channel = mock.Mock() + grpc_create_channel.return_value = mock_grpc_channel + mock_cred = mock.Mock() + + with pytest.warns(DeprecationWarning): + transport = transport_class( + host="squid.clam.whelk", + credentials=mock_cred, + api_mtls_endpoint="mtls.squid.clam.whelk", + client_cert_source=None, + ) + + grpc_create_channel.assert_called_once_with( + "mtls.squid.clam.whelk:443", + credentials=mock_cred, + credentials_file=None, + scopes=None, + ssl_credentials=mock_ssl_cred, + quota_project_id=None, + options=[ + ("grpc.max_send_message_length", -1), + ("grpc.max_receive_message_length", -1), + ], + ) + assert transport.grpc_channel == mock_grpc_channel + + +def test_hub_service_grpc_lro_client(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc', + ) + transport = client.transport + + # Ensure that we have a api-core operations client. + assert isinstance( + transport.operations_client, + operations_v1.OperationsClient, + ) + + # Ensure that subsequent calls to the property send the exact same object. + assert transport.operations_client is transport.operations_client + + +def test_hub_service_grpc_lro_async_client(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport='grpc_asyncio', + ) + transport = client.transport + + # Ensure that we have a api-core operations client. + assert isinstance( + transport.operations_client, + operations_v1.OperationsAsyncClient, + ) + + # Ensure that subsequent calls to the property send the exact same object. + assert transport.operations_client is transport.operations_client + + +def test_hub_path(): + project = "squid" + hub = "clam" + expected = "projects/{project}/locations/global/hubs/{hub}".format(project=project, hub=hub, ) + actual = HubServiceClient.hub_path(project, hub) + assert expected == actual + + +def test_parse_hub_path(): + expected = { + "project": "whelk", + "hub": "octopus", + } + path = HubServiceClient.hub_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_hub_path(path) + assert expected == actual + +def test_instance_path(): + project = "oyster" + zone = "nudibranch" + instance = "cuttlefish" + expected = "projects/{project}/zones/{zone}/instances/{instance}".format(project=project, zone=zone, instance=instance, ) + actual = HubServiceClient.instance_path(project, zone, instance) + assert expected == actual + + +def test_parse_instance_path(): + expected = { + "project": "mussel", + "zone": "winkle", + "instance": "nautilus", + } + path = HubServiceClient.instance_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_instance_path(path) + assert expected == actual + +def test_interconnect_attachment_path(): + project = "scallop" + region = "abalone" + resource_id = "squid" + expected = "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) + actual = HubServiceClient.interconnect_attachment_path(project, region, resource_id) + assert expected == actual + + +def test_parse_interconnect_attachment_path(): + expected = { + "project": "clam", + "region": "whelk", + "resource_id": "octopus", + } + path = HubServiceClient.interconnect_attachment_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_interconnect_attachment_path(path) + assert expected == actual + +def test_spoke_path(): + project = "oyster" + location = "nudibranch" + spoke = "cuttlefish" + expected = "projects/{project}/locations/{location}/spokes/{spoke}".format(project=project, location=location, spoke=spoke, ) + actual = HubServiceClient.spoke_path(project, location, spoke) + assert expected == actual + + +def test_parse_spoke_path(): + expected = { + "project": "mussel", + "location": "winkle", + "spoke": "nautilus", + } + path = HubServiceClient.spoke_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_spoke_path(path) + assert expected == actual + +def test_vpn_tunnel_path(): + project = "scallop" + region = "abalone" + resource_id = "squid" + expected = "projects/{project}/regions/{region}/vpnTunnels/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) + actual = HubServiceClient.vpn_tunnel_path(project, region, resource_id) + assert expected == actual + + +def test_parse_vpn_tunnel_path(): + expected = { + "project": "clam", + "region": "whelk", + "resource_id": "octopus", + } + path = HubServiceClient.vpn_tunnel_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_vpn_tunnel_path(path) + assert expected == actual + +def test_common_billing_account_path(): + billing_account = "oyster" + expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, ) + actual = HubServiceClient.common_billing_account_path(billing_account) + assert expected == actual + + +def test_parse_common_billing_account_path(): + expected = { + "billing_account": "nudibranch", + } + path = HubServiceClient.common_billing_account_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_billing_account_path(path) + assert expected == actual + +def test_common_folder_path(): + folder = "cuttlefish" + expected = "folders/{folder}".format(folder=folder, ) + actual = HubServiceClient.common_folder_path(folder) + assert expected == actual + + +def test_parse_common_folder_path(): + expected = { + "folder": "mussel", + } + path = HubServiceClient.common_folder_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_folder_path(path) + assert expected == actual + +def test_common_organization_path(): + organization = "winkle" + expected = "organizations/{organization}".format(organization=organization, ) + actual = HubServiceClient.common_organization_path(organization) + assert expected == actual + + +def test_parse_common_organization_path(): + expected = { + "organization": "nautilus", + } + path = HubServiceClient.common_organization_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_organization_path(path) + assert expected == actual + +def test_common_project_path(): + project = "scallop" + expected = "projects/{project}".format(project=project, ) + actual = HubServiceClient.common_project_path(project) + assert expected == actual + + +def test_parse_common_project_path(): + expected = { + "project": "abalone", + } + path = HubServiceClient.common_project_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_project_path(path) + assert expected == actual + +def test_common_location_path(): + project = "squid" + location = "clam" + expected = "projects/{project}/locations/{location}".format(project=project, location=location, ) + actual = HubServiceClient.common_location_path(project, location) + assert expected == actual + + +def test_parse_common_location_path(): + expected = { + "project": "whelk", + "location": "octopus", + } + path = HubServiceClient.common_location_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_common_location_path(path) + assert expected == actual + + +def test_client_with_default_client_info(): + client_info = gapic_v1.client_info.ClientInfo() + + with mock.patch.object(transports.HubServiceTransport, '_prep_wrapped_messages') as prep: + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + client_info=client_info, + ) + prep.assert_called_once_with(client_info) + + with mock.patch.object(transports.HubServiceTransport, '_prep_wrapped_messages') as prep: + transport_class = HubServiceClient.get_transport_class() + transport = transport_class( + credentials=ga_credentials.AnonymousCredentials(), + client_info=client_info, + ) + prep.assert_called_once_with(client_info) + +@pytest.mark.asyncio +async def test_transport_close_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc_asyncio", + ) + with mock.patch.object(type(getattr(client.transport, "grpc_channel")), "close") as close: + async with client: + close.assert_not_called() + close.assert_called_once() + + +def test_transport_close(): + transports = { + "grpc": "_grpc_channel", + } + + for transport, close_name in transports.items(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport + ) + with mock.patch.object(type(getattr(client.transport, close_name)), "close") as close: + with client: + close.assert_not_called() + close.assert_called_once() + +def test_client_ctx(): + transports = [ + 'grpc', + ] + for transport in transports: + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport + ) + # Test client calls underlying transport. + with mock.patch.object(type(client.transport), "close") as close: + close.assert_not_called() + with client: + pass + close.assert_called() + +@pytest.mark.parametrize("client_class,transport_class", [ + (HubServiceClient, transports.HubServiceGrpcTransport), + (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport), +]) +def test_api_key_credentials(client_class, transport_class): + with mock.patch.object( + google.auth._default, "get_api_key_credentials", create=True + ) as get_api_key_credentials: + mock_cred = mock.Mock() + get_api_key_credentials.return_value = mock_cred + options = client_options.ClientOptions() + options.api_key = "api_key" + with mock.patch.object(transport_class, "__init__") as patched: + patched.return_value = None + client = client_class(client_options=options) + patched.assert_called_once_with( + credentials=mock_cred, + credentials_file=None, + host=client.DEFAULT_ENDPOINT, + scopes=None, + client_cert_source_for_mtls=None, + quota_project_id=None, + client_info=transports.base.DEFAULT_CLIENT_INFO, + always_use_jwt_access=True, + api_audience=None, + ) From dadbf36f22fa5a7514bf96e315fc14c7495ca6be Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Fri, 29 Sep 2023 03:55:25 +0000 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .../v1/.coveragerc | 13 - .../v1/.flake8 | 33 - .../v1/MANIFEST.in | 2 - .../v1/README.rst | 49 - .../v1/docs/_static/custom.css | 3 - .../v1/docs/conf.py | 376 - .../v1/docs/index.rst | 7 - .../networkconnectivity_v1/hub_service.rst | 10 - .../policy_based_routing_service.rst | 10 - .../docs/networkconnectivity_v1/services.rst | 7 - .../v1/docs/networkconnectivity_v1/types.rst | 6 - .../cloud/networkconnectivity/__init__.py | 135 - .../networkconnectivity/gapic_version.py | 16 - .../google/cloud/networkconnectivity/py.typed | 2 - .../cloud/networkconnectivity_v1/__init__.py | 136 - .../gapic_metadata.json | 267 - .../networkconnectivity_v1/gapic_version.py | 16 - .../cloud/networkconnectivity_v1/py.typed | 2 - .../services/__init__.py | 15 - .../services/hub_service/__init__.py | 22 - .../services/hub_service/async_client.py | 3100 ------ .../services/hub_service/client.py | 3369 ------- .../services/hub_service/pagers.py | 744 -- .../hub_service/transports/__init__.py | 33 - .../services/hub_service/transports/base.py | 493 - .../services/hub_service/transports/grpc.py | 960 -- .../hub_service/transports/grpc_asyncio.py | 959 -- .../policy_based_routing_service/__init__.py | 22 - .../async_client.py | 1297 --- .../policy_based_routing_service/client.py | 1503 --- .../policy_based_routing_service/pagers.py | 139 - .../transports/__init__.py | 33 - .../transports/base.py | 282 - .../transports/grpc.py | 555 -- .../transports/grpc_asyncio.py | 554 -- .../networkconnectivity_v1/types/__init__.py | 128 - .../networkconnectivity_v1/types/common.py | 95 - .../cloud/networkconnectivity_v1/types/hub.py | 2030 ---- .../types/policy_based_routing.py | 530 -- .../v1/mypy.ini | 3 - .../v1/noxfile.py | 184 - ..._generated_hub_service_create_hub_async.py | 57 - ...1_generated_hub_service_create_hub_sync.py | 57 - ...enerated_hub_service_create_spoke_async.py | 57 - ...generated_hub_service_create_spoke_sync.py | 57 - ..._generated_hub_service_delete_hub_async.py | 56 - ...1_generated_hub_service_delete_hub_sync.py | 56 - ...enerated_hub_service_delete_spoke_async.py | 56 - ...generated_hub_service_delete_spoke_sync.py | 56 - ..._v1_generated_hub_service_get_hub_async.py | 52 - ...y_v1_generated_hub_service_get_hub_sync.py | 52 - ...1_generated_hub_service_get_spoke_async.py | 52 - ...v1_generated_hub_service_get_spoke_sync.py | 52 - ...1_generated_hub_service_list_hubs_async.py | 53 - ...v1_generated_hub_service_list_hubs_sync.py | 53 - ...generated_hub_service_list_spokes_async.py | 53 - ..._generated_hub_service_list_spokes_sync.py | 53 - ..._generated_hub_service_update_hub_async.py | 55 - ...1_generated_hub_service_update_hub_sync.py | 55 - ...enerated_hub_service_update_spoke_async.py | 55 - ...generated_hub_service_update_spoke_sync.py | 55 - ...service_create_policy_based_route_async.py | 63 - ..._service_create_policy_based_route_sync.py | 63 - ...service_delete_policy_based_route_async.py | 56 - ..._service_delete_policy_based_route_sync.py | 56 - ...ng_service_get_policy_based_route_async.py | 52 - ...ing_service_get_policy_based_route_sync.py | 52 - ..._service_list_policy_based_routes_async.py | 53 - ...g_service_list_policy_based_routes_sync.py | 53 - ...a_google.cloud.networkconnectivity.v1.json | 3798 -------- .../fixup_networkconnectivity_v1_keywords.py | 198 - .../v1/setup.py | 91 - .../v1/testing/constraints-3.10.txt | 7 - .../v1/testing/constraints-3.11.txt | 7 - .../v1/testing/constraints-3.12.txt | 7 - .../v1/testing/constraints-3.7.txt | 10 - .../v1/testing/constraints-3.8.txt | 7 - .../v1/testing/constraints-3.9.txt | 7 - .../v1/tests/__init__.py | 16 - .../v1/tests/unit/__init__.py | 16 - .../v1/tests/unit/gapic/__init__.py | 16 - .../gapic/networkconnectivity_v1/__init__.py | 16 - .../test_hub_service.py | 8386 ----------------- .../test_policy_based_routing_service.py | 3640 ------- .../v1alpha1/.coveragerc | 13 - .../v1alpha1/.flake8 | 33 - .../v1alpha1/MANIFEST.in | 2 - .../v1alpha1/README.rst | 49 - .../v1alpha1/docs/_static/custom.css | 3 - .../v1alpha1/docs/conf.py | 376 - .../v1alpha1/docs/index.rst | 7 - .../hub_service.rst | 10 - .../networkconnectivity_v1alpha1/services.rst | 6 - .../networkconnectivity_v1alpha1/types.rst | 6 - .../cloud/networkconnectivity/__init__.py | 61 - .../networkconnectivity/gapic_version.py | 16 - .../google/cloud/networkconnectivity/py.typed | 2 - .../networkconnectivity_v1alpha1/__init__.py | 62 - .../gapic_metadata.json | 123 - .../gapic_version.py | 16 - .../networkconnectivity_v1alpha1/py.typed | 2 - .../services/__init__.py | 15 - .../services/hub_service/__init__.py | 22 - .../services/hub_service/async_client.py | 1437 --- .../services/hub_service/client.py | 1675 ---- .../services/hub_service/pagers.py | 260 - .../hub_service/transports/__init__.py | 33 - .../services/hub_service/transports/base.py | 282 - .../services/hub_service/transports/grpc.py | 521 - .../hub_service/transports/grpc_asyncio.py | 520 - .../types/__init__.py | 56 - .../types/common.py | 95 - .../networkconnectivity_v1alpha1/types/hub.py | 731 -- .../v1alpha1/mypy.ini | 3 - .../v1alpha1/noxfile.py | 184 - ..._generated_hub_service_create_hub_async.py | 56 - ...1_generated_hub_service_create_hub_sync.py | 56 - ...enerated_hub_service_create_spoke_async.py | 56 - ...generated_hub_service_create_spoke_sync.py | 56 - ..._generated_hub_service_delete_hub_async.py | 56 - ...1_generated_hub_service_delete_hub_sync.py | 56 - ...enerated_hub_service_delete_spoke_async.py | 56 - ...generated_hub_service_delete_spoke_sync.py | 56 - ...ha1_generated_hub_service_get_hub_async.py | 52 - ...pha1_generated_hub_service_get_hub_sync.py | 52 - ...1_generated_hub_service_get_spoke_async.py | 52 - ...a1_generated_hub_service_get_spoke_sync.py | 52 - ...1_generated_hub_service_list_hubs_async.py | 53 - ...a1_generated_hub_service_list_hubs_sync.py | 53 - ...generated_hub_service_list_spokes_async.py | 53 - ..._generated_hub_service_list_spokes_sync.py | 53 - ..._generated_hub_service_update_hub_async.py | 55 - ...1_generated_hub_service_update_hub_sync.py | 55 - ...enerated_hub_service_update_spoke_async.py | 55 - ...generated_hub_service_update_spoke_sync.py | 55 - ...le.cloud.networkconnectivity.v1alpha1.json | 1673 ---- ...p_networkconnectivity_v1alpha1_keywords.py | 185 - .../v1alpha1/setup.py | 90 - .../v1alpha1/testing/constraints-3.10.txt | 6 - .../v1alpha1/testing/constraints-3.11.txt | 6 - .../v1alpha1/testing/constraints-3.12.txt | 6 - .../v1alpha1/testing/constraints-3.7.txt | 9 - .../v1alpha1/testing/constraints-3.8.txt | 6 - .../v1alpha1/testing/constraints-3.9.txt | 6 - .../v1alpha1/tests/__init__.py | 16 - .../v1alpha1/tests/unit/__init__.py | 16 - .../v1alpha1/tests/unit/gapic/__init__.py | 16 - .../networkconnectivity_v1alpha1/__init__.py | 16 - .../test_hub_service.py | 4099 -------- .../CONTRIBUTING.rst | 4 +- .../cloud/networkconnectivity/__init__.py | 46 + .../networkconnectivity/gapic_version.py | 2 +- .../cloud/networkconnectivity_v1/__init__.py | 46 + .../gapic_metadata.json | 90 + .../networkconnectivity_v1/gapic_version.py | 2 +- .../services/hub_service/async_client.py | 1135 ++- .../services/hub_service/client.py | 1203 ++- .../services/hub_service/pagers.py | 512 + .../services/hub_service/transports/base.py | 119 + .../services/hub_service/transports/grpc.py | 233 + .../hub_service/transports/grpc_asyncio.py | 239 + .../networkconnectivity_v1/types/__init__.py | 46 + .../cloud/networkconnectivity_v1/types/hub.py | 1281 ++- .../types/policy_based_routing.py | 2 +- .../gapic_version.py | 2 +- .../noxfile.py | 23 +- ...ated_hub_service_accept_hub_spoke_async.py | 0 ...rated_hub_service_accept_hub_spoke_sync.py | 0 ...1_generated_hub_service_get_group_async.py | 0 ...v1_generated_hub_service_get_group_sync.py | 0 ...1_generated_hub_service_get_route_async.py | 0 ...v1_generated_hub_service_get_route_sync.py | 0 ...rated_hub_service_get_route_table_async.py | 0 ...erated_hub_service_get_route_table_sync.py | 0 ...generated_hub_service_list_groups_async.py | 0 ..._generated_hub_service_list_groups_sync.py | 0 ...rated_hub_service_list_hub_spokes_async.py | 0 ...erated_hub_service_list_hub_spokes_sync.py | 0 ...ted_hub_service_list_route_tables_async.py | 0 ...ated_hub_service_list_route_tables_sync.py | 0 ...generated_hub_service_list_routes_async.py | 0 ..._generated_hub_service_list_routes_sync.py | 0 ...ated_hub_service_reject_hub_spoke_async.py | 0 ...rated_hub_service_reject_hub_spoke_sync.py | 0 ...a_google.cloud.networkconnectivity.v1.json | 1623 +++- ...le.cloud.networkconnectivity.v1alpha1.json | 2 +- .../fixup_networkconnectivity_v1_keywords.py | 9 + .../test_hub_service.py | 3852 +++++++- 188 files changed, 9766 insertions(+), 50466 deletions(-) delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/.coveragerc delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/.flake8 delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/MANIFEST.in delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/README.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/_static/custom.css delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/conf.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/index.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/hub_service.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/policy_based_routing_service.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/services.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/types.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/gapic_version.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/py.typed delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_metadata.json delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_version.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/py.typed delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/client.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/async_client.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/client.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/pagers.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/base.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc_asyncio.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/common.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/hub.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/policy_based_routing.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/mypy.ini delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/noxfile.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/scripts/fixup_networkconnectivity_v1_keywords.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/setup.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.10.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.11.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.12.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.7.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.8.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.9.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_policy_based_routing_service.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.coveragerc delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.flake8 delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/MANIFEST.in delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/README.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/_static/custom.css delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/conf.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/index.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/hub_service.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/services.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/types.rst delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/gapic_version.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/py.typed delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_metadata.json delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_version.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/py.typed delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/pagers.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/common.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/hub.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/mypy.ini delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/noxfile.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/scripts/fixup_networkconnectivity_v1alpha1_keywords.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/setup.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.10.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.11.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.12.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.7.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.8.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.9.txt delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/__init__.py delete mode 100644 owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_async.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_sync.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_async.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_sync.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_async.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_sync.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_async.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_sync.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_async.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_async.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_sync.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py (100%) rename {owl-bot-staging/google-cloud-network-connectivity/v1 => packages/google-cloud-network-connectivity}/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py (100%) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/.coveragerc b/owl-bot-staging/google-cloud-network-connectivity/v1/.coveragerc deleted file mode 100644 index 068c27e778ef..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/.coveragerc +++ /dev/null @@ -1,13 +0,0 @@ -[run] -branch = True - -[report] -show_missing = True -omit = - google/cloud/networkconnectivity/__init__.py - google/cloud/networkconnectivity/gapic_version.py -exclude_lines = - # Re-enable the standard pragma - pragma: NO COVER - # Ignore debug-only repr - def __repr__ diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/.flake8 b/owl-bot-staging/google-cloud-network-connectivity/v1/.flake8 deleted file mode 100644 index 29227d4cf419..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/.flake8 +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright 2020 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 -# -# https://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 by synthtool. DO NOT EDIT! -[flake8] -ignore = E203, E266, E501, W503 -exclude = - # Exclude generated code. - **/proto/** - **/gapic/** - **/services/** - **/types/** - *_pb2.py - - # Standard linting exemptions. - **/.nox/** - __pycache__, - .git, - *.pyc, - conf.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/MANIFEST.in b/owl-bot-staging/google-cloud-network-connectivity/v1/MANIFEST.in deleted file mode 100644 index 6ddee814ee34..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -recursive-include google/cloud/networkconnectivity *.py -recursive-include google/cloud/networkconnectivity_v1 *.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/README.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/README.rst deleted file mode 100644 index d9dfc30e72fc..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/README.rst +++ /dev/null @@ -1,49 +0,0 @@ -Python Client for Google Cloud Networkconnectivity API -================================================= - -Quick Start ------------ - -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 Google Cloud Networkconnectivity API. -4. `Setup 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 -.. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html - -Installation -~~~~~~~~~~~~ - -Install this library in a `virtualenv`_ using pip. `virtualenv`_ is a tool to -create isolated Python environments. The basic problem it addresses is one of -dependencies and versions, and indirectly permissions. - -With `virtualenv`_, it's possible to install this library without needing system -install permissions, and without clashing with the installed system -dependencies. - -.. _`virtualenv`: https://virtualenv.pypa.io/en/latest/ - - -Mac/Linux -^^^^^^^^^ - -.. code-block:: console - - python3 -m venv - source /bin/activate - /bin/pip install /path/to/library - - -Windows -^^^^^^^ - -.. code-block:: console - - python3 -m venv - \Scripts\activate - \Scripts\pip.exe install \path\to\library diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/_static/custom.css b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/_static/custom.css deleted file mode 100644 index 06423be0b592..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/_static/custom.css +++ /dev/null @@ -1,3 +0,0 @@ -dl.field-list > dt { - min-width: 100px -} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/conf.py b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/conf.py deleted file mode 100644 index 8ab4790aa30b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/conf.py +++ /dev/null @@ -1,376 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -# -# google-cloud-network-connectivity documentation build configuration file -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os -import shlex - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath("..")) - -__version__ = "0.1.0" - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -needs_sphinx = "4.0.1" - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.autosummary", - "sphinx.ext.intersphinx", - "sphinx.ext.coverage", - "sphinx.ext.napoleon", - "sphinx.ext.todo", - "sphinx.ext.viewcode", -] - -# autodoc/autosummary flags -autoclass_content = "both" -autodoc_default_flags = ["members"] -autosummary_generate = True - - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# Allow markdown includes (so releases.md can include CHANGLEOG.md) -# http://www.sphinx-doc.org/en/master/markdown.html -source_parsers = {".md": "recommonmark.parser.CommonMarkParser"} - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -source_suffix = [".rst", ".md"] - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The root toctree document. -root_doc = "index" - -# General information about the project. -project = u"google-cloud-network-connectivity" -copyright = u"2023, Google, LLC" -author = u"Google APIs" # TODO: autogenerate this bit - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The full version, including alpha/beta/rc tags. -release = __version__ -# The short X.Y version. -version = ".".join(release.split(".")[0:2]) - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = 'en' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ["_build"] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = "sphinx" - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = True - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = "alabaster" - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -html_theme_options = { - "description": "Google Cloud Client Libraries for Python", - "github_user": "googleapis", - "github_repo": "google-cloud-python", - "github_banner": True, - "font_family": "'Roboto', Georgia, sans", - "head_font_family": "'Roboto', Georgia, serif", - "code_font_family": "'Roboto Mono', 'Consolas', monospace", -} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static"] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -# html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -# html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -# html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -# html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = "google-cloud-network-connectivity-doc" - -# -- Options for warnings ------------------------------------------------------ - - -suppress_warnings = [ - # Temporarily suppress this to avoid "more than one target found for - # cross-reference" warning, which are intractable for us to avoid while in - # a mono-repo. - # See https://github.com/sphinx-doc/sphinx/blob - # /2a65ffeef5c107c19084fabdd706cdff3f52d93c/sphinx/domains/python.py#L843 - "ref.python" -] - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. - # 'preamble': '', - # Latex figure (float) alignment - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ( - root_doc, - "google-cloud-network-connectivity.tex", - u"google-cloud-network-connectivity Documentation", - author, - "manual", - ) -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ( - root_doc, - "google-cloud-network-connectivity", - u"Google Cloud Networkconnectivity Documentation", - [author], - 1, - ) -] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ( - root_doc, - "google-cloud-network-connectivity", - u"google-cloud-network-connectivity Documentation", - author, - "google-cloud-network-connectivity", - "GAPIC library for Google Cloud Networkconnectivity API", - "APIs", - ) -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False - - -# Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = { - "python": ("http://python.readthedocs.org/en/latest/", None), - "gax": ("https://gax-python.readthedocs.org/en/latest/", None), - "google-auth": ("https://google-auth.readthedocs.io/en/stable", None), - "google-gax": ("https://gax-python.readthedocs.io/en/latest/", None), - "google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None), - "grpc": ("https://grpc.io/grpc/python/", None), - "requests": ("http://requests.kennethreitz.org/en/stable/", None), - "proto": ("https://proto-plus-python.readthedocs.io/en/stable", None), - "protobuf": ("https://googleapis.dev/python/protobuf/latest/", None), -} - - -# Napoleon settings -napoleon_google_docstring = True -napoleon_numpy_docstring = True -napoleon_include_private_with_doc = False -napoleon_include_special_with_doc = True -napoleon_use_admonition_for_examples = False -napoleon_use_admonition_for_notes = False -napoleon_use_admonition_for_references = False -napoleon_use_ivar = False -napoleon_use_param = True -napoleon_use_rtype = True diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/index.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/index.rst deleted file mode 100644 index e09dd3465543..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/index.rst +++ /dev/null @@ -1,7 +0,0 @@ -API Reference -------------- -.. toctree:: - :maxdepth: 2 - - networkconnectivity_v1/services - networkconnectivity_v1/types diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/hub_service.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/hub_service.rst deleted file mode 100644 index 7dbce3db8f35..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/hub_service.rst +++ /dev/null @@ -1,10 +0,0 @@ -HubService ----------------------------- - -.. automodule:: google.cloud.networkconnectivity_v1.services.hub_service - :members: - :inherited-members: - -.. automodule:: google.cloud.networkconnectivity_v1.services.hub_service.pagers - :members: - :inherited-members: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/policy_based_routing_service.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/policy_based_routing_service.rst deleted file mode 100644 index 8991d76d5f39..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/policy_based_routing_service.rst +++ /dev/null @@ -1,10 +0,0 @@ -PolicyBasedRoutingService -------------------------------------------- - -.. automodule:: google.cloud.networkconnectivity_v1.services.policy_based_routing_service - :members: - :inherited-members: - -.. automodule:: google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers - :members: - :inherited-members: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/services.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/services.rst deleted file mode 100644 index a2c404757276..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/services.rst +++ /dev/null @@ -1,7 +0,0 @@ -Services for Google Cloud Networkconnectivity v1 API -==================================================== -.. toctree:: - :maxdepth: 2 - - hub_service - policy_based_routing_service diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/types.rst b/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/types.rst deleted file mode 100644 index f12678cc8797..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/docs/networkconnectivity_v1/types.rst +++ /dev/null @@ -1,6 +0,0 @@ -Types for Google Cloud Networkconnectivity v1 API -================================================= - -.. automodule:: google.cloud.networkconnectivity_v1.types - :members: - :show-inheritance: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/__init__.py deleted file mode 100644 index 092015bd7ad3..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/__init__.py +++ /dev/null @@ -1,135 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from google.cloud.networkconnectivity import gapic_version as package_version - -__version__ = package_version.__version__ - - -from google.cloud.networkconnectivity_v1.services.hub_service.client import HubServiceClient -from google.cloud.networkconnectivity_v1.services.hub_service.async_client import HubServiceAsyncClient -from google.cloud.networkconnectivity_v1.services.policy_based_routing_service.client import PolicyBasedRoutingServiceClient -from google.cloud.networkconnectivity_v1.services.policy_based_routing_service.async_client import PolicyBasedRoutingServiceAsyncClient - -from google.cloud.networkconnectivity_v1.types.common import OperationMetadata -from google.cloud.networkconnectivity_v1.types.hub import AcceptHubSpokeRequest -from google.cloud.networkconnectivity_v1.types.hub import AcceptHubSpokeResponse -from google.cloud.networkconnectivity_v1.types.hub import CreateHubRequest -from google.cloud.networkconnectivity_v1.types.hub import CreateSpokeRequest -from google.cloud.networkconnectivity_v1.types.hub import DeleteHubRequest -from google.cloud.networkconnectivity_v1.types.hub import DeleteSpokeRequest -from google.cloud.networkconnectivity_v1.types.hub import GetGroupRequest -from google.cloud.networkconnectivity_v1.types.hub import GetHubRequest -from google.cloud.networkconnectivity_v1.types.hub import GetRouteRequest -from google.cloud.networkconnectivity_v1.types.hub import GetRouteTableRequest -from google.cloud.networkconnectivity_v1.types.hub import GetSpokeRequest -from google.cloud.networkconnectivity_v1.types.hub import Group -from google.cloud.networkconnectivity_v1.types.hub import Hub -from google.cloud.networkconnectivity_v1.types.hub import LinkedInterconnectAttachments -from google.cloud.networkconnectivity_v1.types.hub import LinkedRouterApplianceInstances -from google.cloud.networkconnectivity_v1.types.hub import LinkedVpcNetwork -from google.cloud.networkconnectivity_v1.types.hub import LinkedVpnTunnels -from google.cloud.networkconnectivity_v1.types.hub import ListGroupsRequest -from google.cloud.networkconnectivity_v1.types.hub import ListGroupsResponse -from google.cloud.networkconnectivity_v1.types.hub import ListHubSpokesRequest -from google.cloud.networkconnectivity_v1.types.hub import ListHubSpokesResponse -from google.cloud.networkconnectivity_v1.types.hub import ListHubsRequest -from google.cloud.networkconnectivity_v1.types.hub import ListHubsResponse -from google.cloud.networkconnectivity_v1.types.hub import ListRoutesRequest -from google.cloud.networkconnectivity_v1.types.hub import ListRoutesResponse -from google.cloud.networkconnectivity_v1.types.hub import ListRouteTablesRequest -from google.cloud.networkconnectivity_v1.types.hub import ListRouteTablesResponse -from google.cloud.networkconnectivity_v1.types.hub import ListSpokesRequest -from google.cloud.networkconnectivity_v1.types.hub import ListSpokesResponse -from google.cloud.networkconnectivity_v1.types.hub import LocationMetadata -from google.cloud.networkconnectivity_v1.types.hub import NextHopVpcNetwork -from google.cloud.networkconnectivity_v1.types.hub import RejectHubSpokeRequest -from google.cloud.networkconnectivity_v1.types.hub import RejectHubSpokeResponse -from google.cloud.networkconnectivity_v1.types.hub import Route -from google.cloud.networkconnectivity_v1.types.hub import RouterApplianceInstance -from google.cloud.networkconnectivity_v1.types.hub import RouteTable -from google.cloud.networkconnectivity_v1.types.hub import RoutingVPC -from google.cloud.networkconnectivity_v1.types.hub import Spoke -from google.cloud.networkconnectivity_v1.types.hub import SpokeSummary -from google.cloud.networkconnectivity_v1.types.hub import UpdateHubRequest -from google.cloud.networkconnectivity_v1.types.hub import UpdateSpokeRequest -from google.cloud.networkconnectivity_v1.types.hub import LocationFeature -from google.cloud.networkconnectivity_v1.types.hub import RouteType -from google.cloud.networkconnectivity_v1.types.hub import SpokeType -from google.cloud.networkconnectivity_v1.types.hub import State -from google.cloud.networkconnectivity_v1.types.policy_based_routing import CreatePolicyBasedRouteRequest -from google.cloud.networkconnectivity_v1.types.policy_based_routing import DeletePolicyBasedRouteRequest -from google.cloud.networkconnectivity_v1.types.policy_based_routing import GetPolicyBasedRouteRequest -from google.cloud.networkconnectivity_v1.types.policy_based_routing import ListPolicyBasedRoutesRequest -from google.cloud.networkconnectivity_v1.types.policy_based_routing import ListPolicyBasedRoutesResponse -from google.cloud.networkconnectivity_v1.types.policy_based_routing import PolicyBasedRoute - -__all__ = ('HubServiceClient', - 'HubServiceAsyncClient', - 'PolicyBasedRoutingServiceClient', - 'PolicyBasedRoutingServiceAsyncClient', - 'OperationMetadata', - 'AcceptHubSpokeRequest', - 'AcceptHubSpokeResponse', - 'CreateHubRequest', - 'CreateSpokeRequest', - 'DeleteHubRequest', - 'DeleteSpokeRequest', - 'GetGroupRequest', - 'GetHubRequest', - 'GetRouteRequest', - 'GetRouteTableRequest', - 'GetSpokeRequest', - 'Group', - 'Hub', - 'LinkedInterconnectAttachments', - 'LinkedRouterApplianceInstances', - 'LinkedVpcNetwork', - 'LinkedVpnTunnels', - 'ListGroupsRequest', - 'ListGroupsResponse', - 'ListHubSpokesRequest', - 'ListHubSpokesResponse', - 'ListHubsRequest', - 'ListHubsResponse', - 'ListRoutesRequest', - 'ListRoutesResponse', - 'ListRouteTablesRequest', - 'ListRouteTablesResponse', - 'ListSpokesRequest', - 'ListSpokesResponse', - 'LocationMetadata', - 'NextHopVpcNetwork', - 'RejectHubSpokeRequest', - 'RejectHubSpokeResponse', - 'Route', - 'RouterApplianceInstance', - 'RouteTable', - 'RoutingVPC', - 'Spoke', - 'SpokeSummary', - 'UpdateHubRequest', - 'UpdateSpokeRequest', - 'LocationFeature', - 'RouteType', - 'SpokeType', - 'State', - 'CreatePolicyBasedRouteRequest', - 'DeletePolicyBasedRouteRequest', - 'GetPolicyBasedRouteRequest', - 'ListPolicyBasedRoutesRequest', - 'ListPolicyBasedRoutesResponse', - 'PolicyBasedRoute', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/gapic_version.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/gapic_version.py deleted file mode 100644 index 360a0d13ebdd..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/gapic_version.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -__version__ = "0.0.0" # {x-release-please-version} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/py.typed b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/py.typed deleted file mode 100644 index cf2368140f5e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity/py.typed +++ /dev/null @@ -1,2 +0,0 @@ -# Marker file for PEP 561. -# The google-cloud-network-connectivity package uses inline types. diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/__init__.py deleted file mode 100644 index 1691495ad6f1..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/__init__.py +++ /dev/null @@ -1,136 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from google.cloud.networkconnectivity_v1 import gapic_version as package_version - -__version__ = package_version.__version__ - - -from .services.hub_service import HubServiceClient -from .services.hub_service import HubServiceAsyncClient -from .services.policy_based_routing_service import PolicyBasedRoutingServiceClient -from .services.policy_based_routing_service import PolicyBasedRoutingServiceAsyncClient - -from .types.common import OperationMetadata -from .types.hub import AcceptHubSpokeRequest -from .types.hub import AcceptHubSpokeResponse -from .types.hub import CreateHubRequest -from .types.hub import CreateSpokeRequest -from .types.hub import DeleteHubRequest -from .types.hub import DeleteSpokeRequest -from .types.hub import GetGroupRequest -from .types.hub import GetHubRequest -from .types.hub import GetRouteRequest -from .types.hub import GetRouteTableRequest -from .types.hub import GetSpokeRequest -from .types.hub import Group -from .types.hub import Hub -from .types.hub import LinkedInterconnectAttachments -from .types.hub import LinkedRouterApplianceInstances -from .types.hub import LinkedVpcNetwork -from .types.hub import LinkedVpnTunnels -from .types.hub import ListGroupsRequest -from .types.hub import ListGroupsResponse -from .types.hub import ListHubSpokesRequest -from .types.hub import ListHubSpokesResponse -from .types.hub import ListHubsRequest -from .types.hub import ListHubsResponse -from .types.hub import ListRoutesRequest -from .types.hub import ListRoutesResponse -from .types.hub import ListRouteTablesRequest -from .types.hub import ListRouteTablesResponse -from .types.hub import ListSpokesRequest -from .types.hub import ListSpokesResponse -from .types.hub import LocationMetadata -from .types.hub import NextHopVpcNetwork -from .types.hub import RejectHubSpokeRequest -from .types.hub import RejectHubSpokeResponse -from .types.hub import Route -from .types.hub import RouterApplianceInstance -from .types.hub import RouteTable -from .types.hub import RoutingVPC -from .types.hub import Spoke -from .types.hub import SpokeSummary -from .types.hub import UpdateHubRequest -from .types.hub import UpdateSpokeRequest -from .types.hub import LocationFeature -from .types.hub import RouteType -from .types.hub import SpokeType -from .types.hub import State -from .types.policy_based_routing import CreatePolicyBasedRouteRequest -from .types.policy_based_routing import DeletePolicyBasedRouteRequest -from .types.policy_based_routing import GetPolicyBasedRouteRequest -from .types.policy_based_routing import ListPolicyBasedRoutesRequest -from .types.policy_based_routing import ListPolicyBasedRoutesResponse -from .types.policy_based_routing import PolicyBasedRoute - -__all__ = ( - 'HubServiceAsyncClient', - 'PolicyBasedRoutingServiceAsyncClient', -'AcceptHubSpokeRequest', -'AcceptHubSpokeResponse', -'CreateHubRequest', -'CreatePolicyBasedRouteRequest', -'CreateSpokeRequest', -'DeleteHubRequest', -'DeletePolicyBasedRouteRequest', -'DeleteSpokeRequest', -'GetGroupRequest', -'GetHubRequest', -'GetPolicyBasedRouteRequest', -'GetRouteRequest', -'GetRouteTableRequest', -'GetSpokeRequest', -'Group', -'Hub', -'HubServiceClient', -'LinkedInterconnectAttachments', -'LinkedRouterApplianceInstances', -'LinkedVpcNetwork', -'LinkedVpnTunnels', -'ListGroupsRequest', -'ListGroupsResponse', -'ListHubSpokesRequest', -'ListHubSpokesResponse', -'ListHubsRequest', -'ListHubsResponse', -'ListPolicyBasedRoutesRequest', -'ListPolicyBasedRoutesResponse', -'ListRouteTablesRequest', -'ListRouteTablesResponse', -'ListRoutesRequest', -'ListRoutesResponse', -'ListSpokesRequest', -'ListSpokesResponse', -'LocationFeature', -'LocationMetadata', -'NextHopVpcNetwork', -'OperationMetadata', -'PolicyBasedRoute', -'PolicyBasedRoutingServiceClient', -'RejectHubSpokeRequest', -'RejectHubSpokeResponse', -'Route', -'RouteTable', -'RouteType', -'RouterApplianceInstance', -'RoutingVPC', -'Spoke', -'SpokeSummary', -'SpokeType', -'State', -'UpdateHubRequest', -'UpdateSpokeRequest', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_metadata.json b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_metadata.json deleted file mode 100644 index 913e687b84bb..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_metadata.json +++ /dev/null @@ -1,267 +0,0 @@ - { - "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", - "language": "python", - "libraryPackage": "google.cloud.networkconnectivity_v1", - "protoPackage": "google.cloud.networkconnectivity.v1", - "schema": "1.0", - "services": { - "HubService": { - "clients": { - "grpc": { - "libraryClient": "HubServiceClient", - "rpcs": { - "AcceptHubSpoke": { - "methods": [ - "accept_hub_spoke" - ] - }, - "CreateHub": { - "methods": [ - "create_hub" - ] - }, - "CreateSpoke": { - "methods": [ - "create_spoke" - ] - }, - "DeleteHub": { - "methods": [ - "delete_hub" - ] - }, - "DeleteSpoke": { - "methods": [ - "delete_spoke" - ] - }, - "GetGroup": { - "methods": [ - "get_group" - ] - }, - "GetHub": { - "methods": [ - "get_hub" - ] - }, - "GetRoute": { - "methods": [ - "get_route" - ] - }, - "GetRouteTable": { - "methods": [ - "get_route_table" - ] - }, - "GetSpoke": { - "methods": [ - "get_spoke" - ] - }, - "ListGroups": { - "methods": [ - "list_groups" - ] - }, - "ListHubSpokes": { - "methods": [ - "list_hub_spokes" - ] - }, - "ListHubs": { - "methods": [ - "list_hubs" - ] - }, - "ListRouteTables": { - "methods": [ - "list_route_tables" - ] - }, - "ListRoutes": { - "methods": [ - "list_routes" - ] - }, - "ListSpokes": { - "methods": [ - "list_spokes" - ] - }, - "RejectHubSpoke": { - "methods": [ - "reject_hub_spoke" - ] - }, - "UpdateHub": { - "methods": [ - "update_hub" - ] - }, - "UpdateSpoke": { - "methods": [ - "update_spoke" - ] - } - } - }, - "grpc-async": { - "libraryClient": "HubServiceAsyncClient", - "rpcs": { - "AcceptHubSpoke": { - "methods": [ - "accept_hub_spoke" - ] - }, - "CreateHub": { - "methods": [ - "create_hub" - ] - }, - "CreateSpoke": { - "methods": [ - "create_spoke" - ] - }, - "DeleteHub": { - "methods": [ - "delete_hub" - ] - }, - "DeleteSpoke": { - "methods": [ - "delete_spoke" - ] - }, - "GetGroup": { - "methods": [ - "get_group" - ] - }, - "GetHub": { - "methods": [ - "get_hub" - ] - }, - "GetRoute": { - "methods": [ - "get_route" - ] - }, - "GetRouteTable": { - "methods": [ - "get_route_table" - ] - }, - "GetSpoke": { - "methods": [ - "get_spoke" - ] - }, - "ListGroups": { - "methods": [ - "list_groups" - ] - }, - "ListHubSpokes": { - "methods": [ - "list_hub_spokes" - ] - }, - "ListHubs": { - "methods": [ - "list_hubs" - ] - }, - "ListRouteTables": { - "methods": [ - "list_route_tables" - ] - }, - "ListRoutes": { - "methods": [ - "list_routes" - ] - }, - "ListSpokes": { - "methods": [ - "list_spokes" - ] - }, - "RejectHubSpoke": { - "methods": [ - "reject_hub_spoke" - ] - }, - "UpdateHub": { - "methods": [ - "update_hub" - ] - }, - "UpdateSpoke": { - "methods": [ - "update_spoke" - ] - } - } - } - } - }, - "PolicyBasedRoutingService": { - "clients": { - "grpc": { - "libraryClient": "PolicyBasedRoutingServiceClient", - "rpcs": { - "CreatePolicyBasedRoute": { - "methods": [ - "create_policy_based_route" - ] - }, - "DeletePolicyBasedRoute": { - "methods": [ - "delete_policy_based_route" - ] - }, - "GetPolicyBasedRoute": { - "methods": [ - "get_policy_based_route" - ] - }, - "ListPolicyBasedRoutes": { - "methods": [ - "list_policy_based_routes" - ] - } - } - }, - "grpc-async": { - "libraryClient": "PolicyBasedRoutingServiceAsyncClient", - "rpcs": { - "CreatePolicyBasedRoute": { - "methods": [ - "create_policy_based_route" - ] - }, - "DeletePolicyBasedRoute": { - "methods": [ - "delete_policy_based_route" - ] - }, - "GetPolicyBasedRoute": { - "methods": [ - "get_policy_based_route" - ] - }, - "ListPolicyBasedRoutes": { - "methods": [ - "list_policy_based_routes" - ] - } - } - } - } - } - } -} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_version.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_version.py deleted file mode 100644 index 360a0d13ebdd..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/gapic_version.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -__version__ = "0.0.0" # {x-release-please-version} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/py.typed b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/py.typed deleted file mode 100644 index cf2368140f5e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/py.typed +++ /dev/null @@ -1,2 +0,0 @@ -# Marker file for PEP 561. -# The google-cloud-network-connectivity package uses inline types. diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/__init__.py deleted file mode 100644 index 89a37dc92c5a..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/__init__.py deleted file mode 100644 index 3baa4e89a4e6..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from .client import HubServiceClient -from .async_client import HubServiceAsyncClient - -__all__ = ( - 'HubServiceClient', - 'HubServiceAsyncClient', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py deleted file mode 100644 index bd329a1a0fe4..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py +++ /dev/null @@ -1,3100 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from collections import OrderedDict -import functools -import re -from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union - -from google.cloud.networkconnectivity_v1 import gapic_version as package_version - -from google.api_core.client_options import ClientOptions -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import retry as retries -from google.auth import credentials as ga_credentials # type: ignore -from google.oauth2 import service_account # type: ignore - -try: - OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] -except AttributeError: # pragma: NO COVER - OptionalRetry = Union[retries.Retry, object] # type: ignore - -from google.api_core import operation # type: ignore -from google.api_core import operation_async # type: ignore -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.services.hub_service import pagers -from google.cloud.networkconnectivity_v1.types import common -from google.cloud.networkconnectivity_v1.types import hub -from google.cloud.networkconnectivity_v1.types import hub as gcn_hub -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from google.protobuf import empty_pb2 # type: ignore -from google.protobuf import field_mask_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore -from .transports.base import HubServiceTransport, DEFAULT_CLIENT_INFO -from .transports.grpc_asyncio import HubServiceGrpcAsyncIOTransport -from .client import HubServiceClient - - -class HubServiceAsyncClient: - """Network Connectivity Center is a hub-and-spoke abstraction - for network connectivity management in Google Cloud. It reduces - operational complexity through a simple, centralized - connectivity management model. - """ - - _client: HubServiceClient - - DEFAULT_ENDPOINT = HubServiceClient.DEFAULT_ENDPOINT - DEFAULT_MTLS_ENDPOINT = HubServiceClient.DEFAULT_MTLS_ENDPOINT - - group_path = staticmethod(HubServiceClient.group_path) - parse_group_path = staticmethod(HubServiceClient.parse_group_path) - hub_path = staticmethod(HubServiceClient.hub_path) - parse_hub_path = staticmethod(HubServiceClient.parse_hub_path) - hub_route_path = staticmethod(HubServiceClient.hub_route_path) - parse_hub_route_path = staticmethod(HubServiceClient.parse_hub_route_path) - instance_path = staticmethod(HubServiceClient.instance_path) - parse_instance_path = staticmethod(HubServiceClient.parse_instance_path) - interconnect_attachment_path = staticmethod(HubServiceClient.interconnect_attachment_path) - parse_interconnect_attachment_path = staticmethod(HubServiceClient.parse_interconnect_attachment_path) - network_path = staticmethod(HubServiceClient.network_path) - parse_network_path = staticmethod(HubServiceClient.parse_network_path) - route_table_path = staticmethod(HubServiceClient.route_table_path) - parse_route_table_path = staticmethod(HubServiceClient.parse_route_table_path) - spoke_path = staticmethod(HubServiceClient.spoke_path) - parse_spoke_path = staticmethod(HubServiceClient.parse_spoke_path) - vpn_tunnel_path = staticmethod(HubServiceClient.vpn_tunnel_path) - parse_vpn_tunnel_path = staticmethod(HubServiceClient.parse_vpn_tunnel_path) - common_billing_account_path = staticmethod(HubServiceClient.common_billing_account_path) - parse_common_billing_account_path = staticmethod(HubServiceClient.parse_common_billing_account_path) - common_folder_path = staticmethod(HubServiceClient.common_folder_path) - parse_common_folder_path = staticmethod(HubServiceClient.parse_common_folder_path) - common_organization_path = staticmethod(HubServiceClient.common_organization_path) - parse_common_organization_path = staticmethod(HubServiceClient.parse_common_organization_path) - common_project_path = staticmethod(HubServiceClient.common_project_path) - parse_common_project_path = staticmethod(HubServiceClient.parse_common_project_path) - common_location_path = staticmethod(HubServiceClient.common_location_path) - parse_common_location_path = staticmethod(HubServiceClient.parse_common_location_path) - - @classmethod - def from_service_account_info(cls, info: dict, *args, **kwargs): - """Creates an instance of this client using the provided credentials - info. - - Args: - info (dict): The service account private key info. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - HubServiceAsyncClient: The constructed client. - """ - return HubServiceClient.from_service_account_info.__func__(HubServiceAsyncClient, info, *args, **kwargs) # type: ignore - - @classmethod - def from_service_account_file(cls, filename: str, *args, **kwargs): - """Creates an instance of this client using the provided credentials - file. - - Args: - filename (str): The path to the service account private key json - file. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - HubServiceAsyncClient: The constructed client. - """ - return HubServiceClient.from_service_account_file.__func__(HubServiceAsyncClient, filename, *args, **kwargs) # type: ignore - - from_service_account_json = from_service_account_file - - @classmethod - def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None): - """Return the API endpoint and client cert source for mutual TLS. - - The client cert source is determined in the following order: - (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the - client cert source is None. - (2) if `client_options.client_cert_source` is provided, use the provided one; if the - default client cert source exists, use the default one; otherwise the client cert - source is None. - - The API endpoint is determined in the following order: - (1) if `client_options.api_endpoint` if provided, use the provided one. - (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the - default mTLS endpoint; if the environment variable is "never", use the default API - endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise - use the default API endpoint. - - More details can be found at https://google.aip.dev/auth/4114. - - Args: - client_options (google.api_core.client_options.ClientOptions): Custom options for the - client. Only the `api_endpoint` and `client_cert_source` properties may be used - in this method. - - Returns: - Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the - client cert source to use. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If any errors happen. - """ - return HubServiceClient.get_mtls_endpoint_and_cert_source(client_options) # type: ignore - - @property - def transport(self) -> HubServiceTransport: - """Returns the transport used by the client instance. - - Returns: - HubServiceTransport: The transport used by the client instance. - """ - return self._client.transport - - get_transport_class = functools.partial(type(HubServiceClient).get_transport_class, type(HubServiceClient)) - - def __init__(self, *, - credentials: Optional[ga_credentials.Credentials] = None, - transport: Union[str, HubServiceTransport] = "grpc_asyncio", - client_options: Optional[ClientOptions] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - ) -> None: - """Instantiates the hub service client. - - Args: - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - transport (Union[str, ~.HubServiceTransport]): The - transport to use. If set to None, a transport is chosen - automatically. - client_options (ClientOptions): Custom options for the client. It - won't take effect if a ``transport`` instance is provided. - (1) The ``api_endpoint`` property can be used to override the - default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT - environment variable can also be used to override the endpoint: - "always" (always use the default mTLS endpoint), "never" (always - use the default regular endpoint) and "auto" (auto switch to the - default mTLS endpoint if client certificate is present, this is - the default value). However, the ``api_endpoint`` property takes - precedence if provided. - (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable - is "true", then the ``client_cert_source`` property can be used - to provide client certificate for mutual TLS transport. If - not provided, the default SSL client certificate will be used if - present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not - set, no client certificate will be used. - - Raises: - google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport - creation failed for any reason. - """ - self._client = HubServiceClient( - credentials=credentials, - transport=transport, - client_options=client_options, - client_info=client_info, - - ) - - async def list_hubs(self, - request: Optional[Union[hub.ListHubsRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListHubsAsyncPager: - r"""Lists the Network Connectivity Center hubs associated - with a given 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 networkconnectivity_v1 - - async def sample_list_hubs(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListHubsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_hubs(request=request) - - # Handle the response - async for response in page_result: - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListHubsRequest, dict]]): - The request object. Request for - [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] - method. - parent (:class:`str`): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsAsyncPager: - Response for - [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] - method. - - 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([parent]) - 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.") - - request = hub.ListHubsRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.list_hubs, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # This method is paged; wrap the response in a pager, which provides - # an `__aiter__` convenience method. - response = pagers.ListHubsAsyncPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def get_hub(self, - request: Optional[Union[hub.GetHubRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Hub: - r"""Gets details about a Network Connectivity Center hub. - - .. 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 networkconnectivity_v1 - - async def sample_get_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetHubRequest( - name="name_value", - ) - - # Make the request - response = await client.get_hub(request=request) - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetHubRequest, dict]]): - The request object. Request for - [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub] - method. - name (:class:`str`): - Required. The name of the hub - resource to get. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.Hub: - A Network Connectivity Center hub is - a global management resource to which - you attach spokes. A single hub can - contain spokes from multiple regions. - However, if any of a hub's spokes use - the site-to-site data transfer feature, - the resources associated with those - spokes must all be in the same VPC - network. Spokes that do not use - site-to-site data transfer can be - associated with any VPC network in your - project. - - """ - # 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([name]) - 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.") - - request = hub.GetHubRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.get_hub, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def create_hub(self, - request: Optional[Union[gcn_hub.CreateHubRequest, dict]] = None, - *, - parent: Optional[str] = None, - hub: Optional[gcn_hub.Hub] = None, - hub_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Creates a new Network Connectivity Center hub in 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 networkconnectivity_v1 - - async def sample_create_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.CreateHubRequest( - parent="parent_value", - hub_id="hub_id_value", - ) - - # Make the request - operation = client.create_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.CreateHubRequest, dict]]): - The request object. Request for - [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub] - method. - parent (:class:`str`): - Required. The parent resource. - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - hub (:class:`google.cloud.networkconnectivity_v1.types.Hub`): - Required. The initial values for a - new hub. - - This corresponds to the ``hub`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - hub_id (:class:`str`): - Required. A unique identifier for the - hub. - - This corresponds to the ``hub_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which - you attach spokes. A single hub can contain spokes - from multiple regions. However, if any of a hub's - spokes use the site-to-site data transfer feature, - the resources associated with those spokes must all - be in the same VPC network. Spokes that do not use - site-to-site data transfer can be associated with any - VPC network in your project. - - """ - # 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([parent, hub, hub_id]) - 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.") - - request = gcn_hub.CreateHubRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if hub is not None: - request.hub = hub - if hub_id is not None: - request.hub_id = hub_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.create_hub, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - gcn_hub.Hub, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def update_hub(self, - request: Optional[Union[gcn_hub.UpdateHubRequest, dict]] = None, - *, - hub: Optional[gcn_hub.Hub] = None, - update_mask: Optional[field_mask_pb2.FieldMask] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Updates the description and/or labels of a Network - Connectivity Center hub. - - .. 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 networkconnectivity_v1 - - async def sample_update_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.UpdateHubRequest( - ) - - # Make the request - operation = client.update_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.UpdateHubRequest, dict]]): - The request object. Request for - [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub] - method. - hub (:class:`google.cloud.networkconnectivity_v1.types.Hub`): - Required. The state that the hub - should be in after the update. - - This corresponds to the ``hub`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`): - Optional. In the case of an update to an existing hub, - field mask is used to specify the fields to be - overwritten. The fields specified in the update_mask are - relative to the resource, not the full request. A field - is overwritten if it is in the mask. If the user does - not provide a mask, then all fields are overwritten. - - This corresponds to the ``update_mask`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which - you attach spokes. A single hub can contain spokes - from multiple regions. However, if any of a hub's - spokes use the site-to-site data transfer feature, - the resources associated with those spokes must all - be in the same VPC network. Spokes that do not use - site-to-site data transfer can be associated with any - VPC network in your project. - - """ - # 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([hub, update_mask]) - 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.") - - request = gcn_hub.UpdateHubRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if hub is not None: - request.hub = hub - if update_mask is not None: - request.update_mask = update_mask - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.update_hub, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("hub.name", request.hub.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - gcn_hub.Hub, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def delete_hub(self, - request: Optional[Union[hub.DeleteHubRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Deletes a Network Connectivity Center hub. - - .. 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 networkconnectivity_v1 - - async def sample_delete_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeleteHubRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.DeleteHubRequest, dict]]): - The request object. The request for - [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub]. - name (:class:`str`): - Required. The name of the hub to - delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.") - - request = hub.DeleteHubRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.delete_hub, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def list_hub_spokes(self, - request: Optional[Union[hub.ListHubSpokesRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListHubSpokesAsyncPager: - r"""Lists the Network Connectivity Center spokes - associated with a specified hub and location. The list - includes both spokes that are attached to the hub and - spokes that have been proposed but not yet accepted. - - .. 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 networkconnectivity_v1 - - async def sample_list_hub_spokes(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListHubSpokesRequest( - name="name_value", - ) - - # Make the request - page_result = client.list_hub_spokes(request=request) - - # Handle the response - async for response in page_result: - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest, dict]]): - The request object. The request for - [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. - name (:class:`str`): - Required. The name of the hub. - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesAsyncPager: - The response for - [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. - - 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([name]) - 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.") - - request = hub.ListHubSpokesRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.list_hub_spokes, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # This method is paged; wrap the response in a pager, which provides - # an `__aiter__` convenience method. - response = pagers.ListHubSpokesAsyncPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def list_spokes(self, - request: Optional[Union[hub.ListSpokesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListSpokesAsyncPager: - r"""Lists the Network Connectivity Center spokes in a - specified project and location. - - .. 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 networkconnectivity_v1 - - async def sample_list_spokes(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListSpokesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_spokes(request=request) - - # Handle the response - async for response in page_result: - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListSpokesRequest, dict]]): - The request object. The request for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. - parent (:class:`str`): - Required. The parent resource. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesAsyncPager: - The response for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. - - 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([parent]) - 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.") - - request = hub.ListSpokesRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.list_spokes, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # This method is paged; wrap the response in a pager, which provides - # an `__aiter__` convenience method. - response = pagers.ListSpokesAsyncPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def get_spoke(self, - request: Optional[Union[hub.GetSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Spoke: - r"""Gets details about a Network Connectivity Center - spoke. - - .. 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 networkconnectivity_v1 - - async def sample_get_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetSpokeRequest( - name="name_value", - ) - - # Make the request - response = await client.get_spoke(request=request) - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetSpokeRequest, dict]]): - The request object. The request for - [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke]. - name (:class:`str`): - Required. The name of the spoke - resource. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.Spoke: - A Network Connectivity Center spoke represents one or more network - connectivity resources. - - When you create a spoke, you associate it with a hub. - You must also identify a value for exactly one of the - following fields: - - - linked_vpn_tunnels - - linked_interconnect_attachments - - linked_router_appliance_instances - - linked_vpc_network - - """ - # 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([name]) - 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.") - - request = hub.GetSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.get_spoke, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def create_spoke(self, - request: Optional[Union[hub.CreateSpokeRequest, dict]] = None, - *, - parent: Optional[str] = None, - spoke: Optional[hub.Spoke] = None, - spoke_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Creates a Network Connectivity Center spoke. - - .. 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 networkconnectivity_v1 - - async def sample_create_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.CreateSpokeRequest( - parent="parent_value", - spoke_id="spoke_id_value", - ) - - # Make the request - operation = client.create_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.CreateSpokeRequest, dict]]): - The request object. The request for - [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke]. - parent (:class:`str`): - Required. The parent resource. - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke (:class:`google.cloud.networkconnectivity_v1.types.Spoke`): - Required. The initial values for a - new spoke. - - This corresponds to the ``spoke`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke_id (:class:`str`): - Required. Unique id for the spoke to - create. - - This corresponds to the ``spoke_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network - connectivity resources. - - When you create a spoke, you associate it with a hub. - You must also identify a value for exactly one of the - following fields: - - - linked_vpn_tunnels - - linked_interconnect_attachments - - linked_router_appliance_instances - - linked_vpc_network - - """ - # 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([parent, spoke, spoke_id]) - 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.") - - request = hub.CreateSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if spoke is not None: - request.spoke = spoke - if spoke_id is not None: - request.spoke_id = spoke_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.create_spoke, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - hub.Spoke, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def update_spoke(self, - request: Optional[Union[hub.UpdateSpokeRequest, dict]] = None, - *, - spoke: Optional[hub.Spoke] = None, - update_mask: Optional[field_mask_pb2.FieldMask] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Updates the parameters of a Network Connectivity - Center spoke. - - .. 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 networkconnectivity_v1 - - async def sample_update_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.UpdateSpokeRequest( - ) - - # Make the request - operation = client.update_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest, dict]]): - The request object. Request for - [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke] - method. - spoke (:class:`google.cloud.networkconnectivity_v1.types.Spoke`): - Required. The state that the spoke - should be in after the update. - - This corresponds to the ``spoke`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`): - Optional. In the case of an update to an existing spoke, - field mask is used to specify the fields to be - overwritten. The fields specified in the update_mask are - relative to the resource, not the full request. A field - is overwritten if it is in the mask. If the user does - not provide a mask, then all fields are overwritten. - - This corresponds to the ``update_mask`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network - connectivity resources. - - When you create a spoke, you associate it with a hub. - You must also identify a value for exactly one of the - following fields: - - - linked_vpn_tunnels - - linked_interconnect_attachments - - linked_router_appliance_instances - - linked_vpc_network - - """ - # 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([spoke, update_mask]) - 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.") - - request = hub.UpdateSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if spoke is not None: - request.spoke = spoke - if update_mask is not None: - request.update_mask = update_mask - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.update_spoke, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("spoke.name", request.spoke.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - hub.Spoke, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def reject_hub_spoke(self, - request: Optional[Union[hub.RejectHubSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - spoke_uri: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Rejects a Network Connectivity Center spoke from being attached - to a hub. If the spoke was previously in the ``ACTIVE`` state, - it transitions to the ``INACTIVE`` state and is no longer able - to connect to other spokes that are attached to the hub. - - .. 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 networkconnectivity_v1 - - async def sample_reject_hub_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.RejectHubSpokeRequest( - name="name_value", - spoke_uri="spoke_uri_value", - ) - - # Make the request - operation = client.reject_hub_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest, dict]]): - The request object. The request for - [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. - name (:class:`str`): - Required. The name of the hub from - which to reject the spoke. - - This corresponds to the ``name`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke_uri (:class:`str`): - Required. The URI of the spoke to - reject from the hub. - - This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.RejectHubSpokeResponse` The response for - [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. - - """ - # 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([name, spoke_uri]) - 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.") - - request = hub.RejectHubSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - if spoke_uri is not None: - request.spoke_uri = spoke_uri - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.reject_hub_spoke, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - hub.RejectHubSpokeResponse, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def accept_hub_spoke(self, - request: Optional[Union[hub.AcceptHubSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - spoke_uri: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Accepts a proposal to attach a Network Connectivity - Center spoke to a hub. - - .. 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 networkconnectivity_v1 - - async def sample_accept_hub_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.AcceptHubSpokeRequest( - name="name_value", - spoke_uri="spoke_uri_value", - ) - - # Make the request - operation = client.accept_hub_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest, dict]]): - The request object. The request for - [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. - name (:class:`str`): - Required. The name of the hub into - which to accept the spoke. - - This corresponds to the ``name`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke_uri (:class:`str`): - Required. The URI of the spoke to - accept into the hub. - - This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.AcceptHubSpokeResponse` The response for - [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. - - """ - # 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([name, spoke_uri]) - 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.") - - request = hub.AcceptHubSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - if spoke_uri is not None: - request.spoke_uri = spoke_uri - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.accept_hub_spoke, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - hub.AcceptHubSpokeResponse, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def delete_spoke(self, - request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Deletes a Network Connectivity Center spoke. - - .. 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 networkconnectivity_v1 - - async def sample_delete_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeleteSpokeRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest, dict]]): - The request object. The request for - [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. - name (:class:`str`): - Required. The name of the spoke to - delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.") - - request = hub.DeleteSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.delete_spoke, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def get_route_table(self, - request: Optional[Union[hub.GetRouteTableRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.RouteTable: - r"""Gets details about a Network Connectivity Center - route table. - - .. 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 networkconnectivity_v1 - - async def sample_get_route_table(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetRouteTableRequest( - name="name_value", - ) - - # Make the request - response = await client.get_route_table(request=request) - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetRouteTableRequest, dict]]): - The request object. The request for - [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. - name (:class:`str`): - Required. The name of the route table - resource. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.RouteTable: - - """ - # 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([name]) - 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.") - - request = hub.GetRouteTableRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.get_route_table, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def get_route(self, - request: Optional[Union[hub.GetRouteRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Route: - r"""Gets details about the specified route. - - .. 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 networkconnectivity_v1 - - async def sample_get_route(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetRouteRequest( - name="name_value", - ) - - # Make the request - response = await client.get_route(request=request) - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetRouteRequest, dict]]): - The request object. The request for - [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. - name (:class:`str`): - Required. The name of the route - resource. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.Route: - A route defines a path from VM - instances within a spoke to a specific - destination resource. Only VPC spokes - have routes. - - """ - # 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([name]) - 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.") - - request = hub.GetRouteRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.get_route, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def list_routes(self, - request: Optional[Union[hub.ListRoutesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListRoutesAsyncPager: - r"""Lists routes in a given 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 networkconnectivity_v1 - - async def sample_list_routes(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListRoutesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_routes(request=request) - - # Handle the response - async for response in page_result: - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListRoutesRequest, dict]]): - The request object. Request for - [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] - method. - parent (:class:`str`): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesAsyncPager: - Response for - [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] - method. - - 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([parent]) - 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.") - - request = hub.ListRoutesRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.list_routes, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # This method is paged; wrap the response in a pager, which provides - # an `__aiter__` convenience method. - response = pagers.ListRoutesAsyncPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def list_route_tables(self, - request: Optional[Union[hub.ListRouteTablesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListRouteTablesAsyncPager: - r"""Lists route tables in a given 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 networkconnectivity_v1 - - async def sample_list_route_tables(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListRouteTablesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_route_tables(request=request) - - # Handle the response - async for response in page_result: - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest, dict]]): - The request object. Request for - [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] - method. - parent (:class:`str`): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesAsyncPager: - Response for - [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] - method. - - 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([parent]) - 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.") - - request = hub.ListRouteTablesRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.list_route_tables, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # This method is paged; wrap the response in a pager, which provides - # an `__aiter__` convenience method. - response = pagers.ListRouteTablesAsyncPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def get_group(self, - request: Optional[Union[hub.GetGroupRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Group: - r"""Gets details about a Network Connectivity Center - group. - - .. 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 networkconnectivity_v1 - - async def sample_get_group(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetGroupRequest( - name="name_value", - ) - - # Make the request - response = await client.get_group(request=request) - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetGroupRequest, dict]]): - The request object. The request for - [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. - name (:class:`str`): - Required. The name of the route table - resource. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.Group: - A group represents a subset of spokes - attached to a hub. - - """ - # 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([name]) - 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.") - - request = hub.GetGroupRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.get_group, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def list_groups(self, - request: Optional[Union[hub.ListGroupsRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListGroupsAsyncPager: - r"""Lists groups in a given hub. - - .. 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 networkconnectivity_v1 - - async def sample_list_groups(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListGroupsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_groups(request=request) - - # Handle the response - async for response in page_result: - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListGroupsRequest, dict]]): - The request object. Request for - [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] - method. - parent (:class:`str`): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsAsyncPager: - Response for - [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] - method. - - 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([parent]) - 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.") - - request = hub.ListGroupsRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.list_groups, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # This method is paged; wrap the response in a pager, which provides - # an `__aiter__` convenience method. - response = pagers.ListGroupsAsyncPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def list_operations( - self, - request: Optional[operations_pb2.ListOperationsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operations_pb2.ListOperationsResponse: - r"""Lists operations that match the specified filter in the request. - - Args: - request (:class:`~.operations_pb2.ListOperationsRequest`): - The request object. Request message for - `ListOperations` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.operations_pb2.ListOperationsResponse: - Response message for ``ListOperations`` method. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.ListOperationsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.list_operations, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def get_operation( - self, - request: Optional[operations_pb2.GetOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operations_pb2.Operation: - r"""Gets the latest state of a long-running operation. - - Args: - request (:class:`~.operations_pb2.GetOperationRequest`): - The request object. Request message for - `GetOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.operations_pb2.Operation: - An ``Operation`` object. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.GetOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.get_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def delete_operation( - self, - request: Optional[operations_pb2.DeleteOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> None: - r"""Deletes a long-running operation. - - This method indicates that the client is no longer interested - in the operation result. It does not cancel the operation. - If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. - - Args: - request (:class:`~.operations_pb2.DeleteOperationRequest`): - The request object. Request message for - `DeleteOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - None - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.DeleteOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.delete_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - await rpc(request, retry=retry, timeout=timeout, metadata=metadata,) - - async def cancel_operation( - self, - request: Optional[operations_pb2.CancelOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> None: - r"""Starts asynchronous cancellation on a long-running operation. - - The server makes a best effort to cancel the operation, but success - is not guaranteed. If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. - - Args: - request (:class:`~.operations_pb2.CancelOperationRequest`): - The request object. Request message for - `CancelOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - None - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.CancelOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.cancel_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - await rpc(request, retry=retry, timeout=timeout, metadata=metadata,) - - async def set_iam_policy( - self, - request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_pb2.Policy: - r"""Sets the IAM access control policy on the specified function. - - Replaces any existing policy. - - Args: - request (:class:`~.iam_policy_pb2.SetIamPolicyRequest`): - The request object. Request message for `SetIamPolicy` - method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.policy_pb2.Policy: - Defines an Identity and Access Management (IAM) policy. - It is used to specify access control policies for Cloud - Platform resources. - A ``Policy`` is a collection of ``bindings``. A - ``binding`` binds one or more ``members`` to a single - ``role``. Members can be user accounts, service - accounts, Google groups, and domains (such as G Suite). - A ``role`` is a named list of permissions (defined by - IAM or configured by users). A ``binding`` can - optionally specify a ``condition``, which is a logic - expression that further constrains the role binding - based on attributes about the request and/or target - resource. - - **JSON Example** - - :: - - { - "bindings": [ - { - "role": "roles/resourcemanager.organizationAdmin", - "members": [ - "user:mike@example.com", - "group:admins@example.com", - "domain:google.com", - "serviceAccount:my-project-id@appspot.gserviceaccount.com" - ] - }, - { - "role": "roles/resourcemanager.organizationViewer", - "members": ["user:eve@example.com"], - "condition": { - "title": "expirable access", - "description": "Does not grant access after Sep 2020", - "expression": "request.time < - timestamp('2020-10-01T00:00:00.000Z')", - } - } - ] - } - - **YAML Example** - - :: - - bindings: - - members: - - user:mike@example.com - - group:admins@example.com - - domain:google.com - - serviceAccount:my-project-id@appspot.gserviceaccount.com - role: roles/resourcemanager.organizationAdmin - - members: - - user:eve@example.com - role: roles/resourcemanager.organizationViewer - condition: - title: expirable access - description: Does not grant access after Sep 2020 - expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - - For a description of IAM and its features, see the `IAM - developer's - guide `__. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.SetIamPolicyRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.set_iam_policy, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def get_iam_policy( - self, - request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_pb2.Policy: - r"""Gets the IAM access control policy for a function. - - Returns an empty policy if the function exists and does not have a - policy set. - - Args: - request (:class:`~.iam_policy_pb2.GetIamPolicyRequest`): - The request object. Request message for `GetIamPolicy` - method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.policy_pb2.Policy: - Defines an Identity and Access Management (IAM) policy. - It is used to specify access control policies for Cloud - Platform resources. - A ``Policy`` is a collection of ``bindings``. A - ``binding`` binds one or more ``members`` to a single - ``role``. Members can be user accounts, service - accounts, Google groups, and domains (such as G Suite). - A ``role`` is a named list of permissions (defined by - IAM or configured by users). A ``binding`` can - optionally specify a ``condition``, which is a logic - expression that further constrains the role binding - based on attributes about the request and/or target - resource. - - **JSON Example** - - :: - - { - "bindings": [ - { - "role": "roles/resourcemanager.organizationAdmin", - "members": [ - "user:mike@example.com", - "group:admins@example.com", - "domain:google.com", - "serviceAccount:my-project-id@appspot.gserviceaccount.com" - ] - }, - { - "role": "roles/resourcemanager.organizationViewer", - "members": ["user:eve@example.com"], - "condition": { - "title": "expirable access", - "description": "Does not grant access after Sep 2020", - "expression": "request.time < - timestamp('2020-10-01T00:00:00.000Z')", - } - } - ] - } - - **YAML Example** - - :: - - bindings: - - members: - - user:mike@example.com - - group:admins@example.com - - domain:google.com - - serviceAccount:my-project-id@appspot.gserviceaccount.com - role: roles/resourcemanager.organizationAdmin - - members: - - user:eve@example.com - role: roles/resourcemanager.organizationViewer - condition: - title: expirable access - description: Does not grant access after Sep 2020 - expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - - For a description of IAM and its features, see the `IAM - developer's - guide `__. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.GetIamPolicyRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.get_iam_policy, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def test_iam_permissions( - self, - request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> iam_policy_pb2.TestIamPermissionsResponse: - r"""Tests the specified IAM permissions against the IAM access control - policy for a function. - - If the function does not exist, this will return an empty set - of permissions, not a NOT_FOUND error. - - Args: - request (:class:`~.iam_policy_pb2.TestIamPermissionsRequest`): - The request object. Request message for - `TestIamPermissions` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.iam_policy_pb2.TestIamPermissionsResponse: - Response message for ``TestIamPermissions`` method. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.TestIamPermissionsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.test_iam_permissions, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def get_location( - self, - request: Optional[locations_pb2.GetLocationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> locations_pb2.Location: - r"""Gets information about a location. - - Args: - request (:class:`~.location_pb2.GetLocationRequest`): - The request object. Request message for - `GetLocation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.location_pb2.Location: - Location object. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = locations_pb2.GetLocationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.get_location, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def list_locations( - self, - request: Optional[locations_pb2.ListLocationsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> locations_pb2.ListLocationsResponse: - r"""Lists information about the supported locations for this service. - - Args: - request (:class:`~.location_pb2.ListLocationsRequest`): - The request object. Request message for - `ListLocations` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.location_pb2.ListLocationsResponse: - Response message for ``ListLocations`` method. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = locations_pb2.ListLocationsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.list_locations, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def __aenter__(self) -> "HubServiceAsyncClient": - return self - - async def __aexit__(self, exc_type, exc, tb): - await self.transport.close() - -DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) - - -__all__ = ( - "HubServiceAsyncClient", -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/client.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/client.py deleted file mode 100644 index dc55dbc05e69..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/client.py +++ /dev/null @@ -1,3369 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from collections import OrderedDict -import os -import re -from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast - -from google.cloud.networkconnectivity_v1 import gapic_version as package_version - -from google.api_core import client_options as client_options_lib -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import retry as retries -from google.auth import credentials as ga_credentials # type: ignore -from google.auth.transport import mtls # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore -from google.auth.exceptions import MutualTLSChannelError # type: ignore -from google.oauth2 import service_account # type: ignore - -try: - OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] -except AttributeError: # pragma: NO COVER - OptionalRetry = Union[retries.Retry, object] # type: ignore - -from google.api_core import operation # type: ignore -from google.api_core import operation_async # type: ignore -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.services.hub_service import pagers -from google.cloud.networkconnectivity_v1.types import common -from google.cloud.networkconnectivity_v1.types import hub -from google.cloud.networkconnectivity_v1.types import hub as gcn_hub -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from google.protobuf import empty_pb2 # type: ignore -from google.protobuf import field_mask_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore -from .transports.base import HubServiceTransport, DEFAULT_CLIENT_INFO -from .transports.grpc import HubServiceGrpcTransport -from .transports.grpc_asyncio import HubServiceGrpcAsyncIOTransport - - -class HubServiceClientMeta(type): - """Metaclass for the HubService client. - - This provides class-level methods for building and retrieving - support objects (e.g. transport) without polluting the client instance - objects. - """ - _transport_registry = OrderedDict() # type: Dict[str, Type[HubServiceTransport]] - _transport_registry["grpc"] = HubServiceGrpcTransport - _transport_registry["grpc_asyncio"] = HubServiceGrpcAsyncIOTransport - - def get_transport_class(cls, - label: Optional[str] = None, - ) -> Type[HubServiceTransport]: - """Returns an appropriate transport class. - - Args: - label: The name of the desired transport. If none is - provided, then the first transport in the registry is used. - - Returns: - The transport class to use. - """ - # If a specific transport is requested, return that one. - if label: - return cls._transport_registry[label] - - # No transport is requested; return the default (that is, the first one - # in the dictionary). - return next(iter(cls._transport_registry.values())) - - -class HubServiceClient(metaclass=HubServiceClientMeta): - """Network Connectivity Center is a hub-and-spoke abstraction - for network connectivity management in Google Cloud. It reduces - operational complexity through a simple, centralized - connectivity management model. - """ - - @staticmethod - def _get_default_mtls_endpoint(api_endpoint): - """Converts api endpoint to mTLS endpoint. - - Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to - "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively. - Args: - api_endpoint (Optional[str]): the api endpoint to convert. - Returns: - str: converted mTLS api endpoint. - """ - if not api_endpoint: - return api_endpoint - - mtls_endpoint_re = re.compile( - r"(?P[^.]+)(?P\.mtls)?(?P\.sandbox)?(?P\.googleapis\.com)?" - ) - - m = mtls_endpoint_re.match(api_endpoint) - name, mtls, sandbox, googledomain = m.groups() - if mtls or not googledomain: - return api_endpoint - - if sandbox: - return api_endpoint.replace( - "sandbox.googleapis.com", "mtls.sandbox.googleapis.com" - ) - - return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com") - - DEFAULT_ENDPOINT = "networkconnectivity.googleapis.com" - DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__( # type: ignore - DEFAULT_ENDPOINT - ) - - @classmethod - def from_service_account_info(cls, info: dict, *args, **kwargs): - """Creates an instance of this client using the provided credentials - info. - - Args: - info (dict): The service account private key info. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - HubServiceClient: The constructed client. - """ - credentials = service_account.Credentials.from_service_account_info(info) - kwargs["credentials"] = credentials - return cls(*args, **kwargs) - - @classmethod - def from_service_account_file(cls, filename: str, *args, **kwargs): - """Creates an instance of this client using the provided credentials - file. - - Args: - filename (str): The path to the service account private key json - file. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - HubServiceClient: The constructed client. - """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs["credentials"] = credentials - return cls(*args, **kwargs) - - from_service_account_json = from_service_account_file - - @property - def transport(self) -> HubServiceTransport: - """Returns the transport used by the client instance. - - Returns: - HubServiceTransport: The transport used by the client - instance. - """ - return self._transport - - @staticmethod - def group_path(project: str,hub: str,group: str,) -> str: - """Returns a fully-qualified group string.""" - return "projects/{project}/locations/global/hubs/{hub}/groups/{group}".format(project=project, hub=hub, group=group, ) - - @staticmethod - def parse_group_path(path: str) -> Dict[str,str]: - """Parses a group path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)/groups/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def hub_path(project: str,hub: str,) -> str: - """Returns a fully-qualified hub string.""" - return "projects/{project}/locations/global/hubs/{hub}".format(project=project, hub=hub, ) - - @staticmethod - def parse_hub_path(path: str) -> Dict[str,str]: - """Parses a hub path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def hub_route_path(project: str,hub: str,route_table: str,route: str,) -> str: - """Returns a fully-qualified hub_route string.""" - return "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}/routes/{route}".format(project=project, hub=hub, route_table=route_table, route=route, ) - - @staticmethod - def parse_hub_route_path(path: str) -> Dict[str,str]: - """Parses a hub_route path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)/routeTables/(?P.+?)/routes/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def instance_path(project: str,zone: str,instance: str,) -> str: - """Returns a fully-qualified instance string.""" - return "projects/{project}/zones/{zone}/instances/{instance}".format(project=project, zone=zone, instance=instance, ) - - @staticmethod - def parse_instance_path(path: str) -> Dict[str,str]: - """Parses a instance path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/zones/(?P.+?)/instances/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def interconnect_attachment_path(project: str,region: str,resource_id: str,) -> str: - """Returns a fully-qualified interconnect_attachment string.""" - return "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) - - @staticmethod - def parse_interconnect_attachment_path(path: str) -> Dict[str,str]: - """Parses a interconnect_attachment path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/regions/(?P.+?)/interconnectAttachments/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def network_path(project: str,resource_id: str,) -> str: - """Returns a fully-qualified network string.""" - return "projects/{project}/global/networks/{resource_id}".format(project=project, resource_id=resource_id, ) - - @staticmethod - def parse_network_path(path: str) -> Dict[str,str]: - """Parses a network path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/global/networks/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def route_table_path(project: str,hub: str,route_table: str,) -> str: - """Returns a fully-qualified route_table string.""" - return "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}".format(project=project, hub=hub, route_table=route_table, ) - - @staticmethod - def parse_route_table_path(path: str) -> Dict[str,str]: - """Parses a route_table path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)/routeTables/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def spoke_path(project: str,location: str,spoke: str,) -> str: - """Returns a fully-qualified spoke string.""" - return "projects/{project}/locations/{location}/spokes/{spoke}".format(project=project, location=location, spoke=spoke, ) - - @staticmethod - def parse_spoke_path(path: str) -> Dict[str,str]: - """Parses a spoke path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)/spokes/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def vpn_tunnel_path(project: str,region: str,resource_id: str,) -> str: - """Returns a fully-qualified vpn_tunnel string.""" - return "projects/{project}/regions/{region}/vpnTunnels/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) - - @staticmethod - def parse_vpn_tunnel_path(path: str) -> Dict[str,str]: - """Parses a vpn_tunnel path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/regions/(?P.+?)/vpnTunnels/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_billing_account_path(billing_account: str, ) -> str: - """Returns a fully-qualified billing_account string.""" - return "billingAccounts/{billing_account}".format(billing_account=billing_account, ) - - @staticmethod - def parse_common_billing_account_path(path: str) -> Dict[str,str]: - """Parse a billing_account path into its component segments.""" - m = re.match(r"^billingAccounts/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_folder_path(folder: str, ) -> str: - """Returns a fully-qualified folder string.""" - return "folders/{folder}".format(folder=folder, ) - - @staticmethod - def parse_common_folder_path(path: str) -> Dict[str,str]: - """Parse a folder path into its component segments.""" - m = re.match(r"^folders/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_organization_path(organization: str, ) -> str: - """Returns a fully-qualified organization string.""" - return "organizations/{organization}".format(organization=organization, ) - - @staticmethod - def parse_common_organization_path(path: str) -> Dict[str,str]: - """Parse a organization path into its component segments.""" - m = re.match(r"^organizations/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_project_path(project: str, ) -> str: - """Returns a fully-qualified project string.""" - return "projects/{project}".format(project=project, ) - - @staticmethod - def parse_common_project_path(path: str) -> Dict[str,str]: - """Parse a project path into its component segments.""" - m = re.match(r"^projects/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_location_path(project: str, location: str, ) -> str: - """Returns a fully-qualified location string.""" - return "projects/{project}/locations/{location}".format(project=project, location=location, ) - - @staticmethod - def parse_common_location_path(path: str) -> Dict[str,str]: - """Parse a location path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)$", path) - return m.groupdict() if m else {} - - @classmethod - def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None): - """Return the API endpoint and client cert source for mutual TLS. - - The client cert source is determined in the following order: - (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the - client cert source is None. - (2) if `client_options.client_cert_source` is provided, use the provided one; if the - default client cert source exists, use the default one; otherwise the client cert - source is None. - - The API endpoint is determined in the following order: - (1) if `client_options.api_endpoint` if provided, use the provided one. - (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the - default mTLS endpoint; if the environment variable is "never", use the default API - endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise - use the default API endpoint. - - More details can be found at https://google.aip.dev/auth/4114. - - Args: - client_options (google.api_core.client_options.ClientOptions): Custom options for the - client. Only the `api_endpoint` and `client_cert_source` properties may be used - in this method. - - Returns: - Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the - client cert source to use. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If any errors happen. - """ - if client_options is None: - client_options = client_options_lib.ClientOptions() - use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false") - use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto") - if use_client_cert not in ("true", "false"): - raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`") - if use_mtls_endpoint not in ("auto", "never", "always"): - raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`") - - # Figure out the client cert source to use. - client_cert_source = None - if use_client_cert == "true": - if client_options.client_cert_source: - client_cert_source = client_options.client_cert_source - elif mtls.has_default_client_cert_source(): - client_cert_source = mtls.default_client_cert_source() - - # Figure out which api endpoint to use. - if client_options.api_endpoint is not None: - api_endpoint = client_options.api_endpoint - elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source): - api_endpoint = cls.DEFAULT_MTLS_ENDPOINT - else: - api_endpoint = cls.DEFAULT_ENDPOINT - - return api_endpoint, client_cert_source - - def __init__(self, *, - credentials: Optional[ga_credentials.Credentials] = None, - transport: Optional[Union[str, HubServiceTransport]] = None, - client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - ) -> None: - """Instantiates the hub service client. - - Args: - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - transport (Union[str, HubServiceTransport]): The - transport to use. If set to None, a transport is chosen - automatically. - client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the - client. It won't take effect if a ``transport`` instance is provided. - (1) The ``api_endpoint`` property can be used to override the - default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT - environment variable can also be used to override the endpoint: - "always" (always use the default mTLS endpoint), "never" (always - use the default regular endpoint) and "auto" (auto switch to the - default mTLS endpoint if client certificate is present, this is - the default value). However, the ``api_endpoint`` property takes - precedence if provided. - (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable - is "true", then the ``client_cert_source`` property can be used - to provide client certificate for mutual TLS transport. If - not provided, the default SSL client certificate will be used if - present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not - set, no client certificate will be used. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport - creation failed for any reason. - """ - if isinstance(client_options, dict): - client_options = client_options_lib.from_dict(client_options) - if client_options is None: - client_options = client_options_lib.ClientOptions() - client_options = cast(client_options_lib.ClientOptions, client_options) - - api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options) - - api_key_value = getattr(client_options, "api_key", None) - if api_key_value and credentials: - raise ValueError("client_options.api_key and credentials are mutually exclusive") - - # Save or instantiate the transport. - # Ordinarily, we provide the transport, but allowing a custom transport - # instance provides an extensibility point for unusual situations. - if isinstance(transport, HubServiceTransport): - # transport is a HubServiceTransport instance. - if credentials or client_options.credentials_file or api_key_value: - raise ValueError("When providing a transport instance, " - "provide its credentials directly.") - if client_options.scopes: - raise ValueError( - "When providing a transport instance, provide its scopes " - "directly." - ) - self._transport = transport - else: - import google.auth._default # type: ignore - - if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"): - credentials = google.auth._default.get_api_key_credentials(api_key_value) - - Transport = type(self).get_transport_class(transport) - self._transport = Transport( - credentials=credentials, - credentials_file=client_options.credentials_file, - host=api_endpoint, - scopes=client_options.scopes, - client_cert_source_for_mtls=client_cert_source_func, - quota_project_id=client_options.quota_project_id, - client_info=client_info, - always_use_jwt_access=True, - api_audience=client_options.api_audience, - ) - - def list_hubs(self, - request: Optional[Union[hub.ListHubsRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListHubsPager: - r"""Lists the Network Connectivity Center hubs associated - with a given 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 networkconnectivity_v1 - - def sample_list_hubs(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListHubsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_hubs(request=request) - - # Handle the response - for response in page_result: - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.ListHubsRequest, dict]): - The request object. Request for - [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] - method. - parent (str): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsPager: - Response for - [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] - method. - - 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([parent]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.ListHubsRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.ListHubsRequest): - request = hub.ListHubsRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list_hubs] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # 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.ListHubsPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - def get_hub(self, - request: Optional[Union[hub.GetHubRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Hub: - r"""Gets details about a Network Connectivity Center hub. - - .. 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 networkconnectivity_v1 - - def sample_get_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetHubRequest( - name="name_value", - ) - - # Make the request - response = client.get_hub(request=request) - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.GetHubRequest, dict]): - The request object. Request for - [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub] - method. - name (str): - Required. The name of the hub - resource to get. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.Hub: - A Network Connectivity Center hub is - a global management resource to which - you attach spokes. A single hub can - contain spokes from multiple regions. - However, if any of a hub's spokes use - the site-to-site data transfer feature, - the resources associated with those - spokes must all be in the same VPC - network. Spokes that do not use - site-to-site data transfer can be - associated with any VPC network in your - project. - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.GetHubRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.GetHubRequest): - request = hub.GetHubRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_hub] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - def create_hub(self, - request: Optional[Union[gcn_hub.CreateHubRequest, dict]] = None, - *, - parent: Optional[str] = None, - hub: Optional[gcn_hub.Hub] = None, - hub_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Creates a new Network Connectivity Center hub in 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 networkconnectivity_v1 - - def sample_create_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.CreateHubRequest( - parent="parent_value", - hub_id="hub_id_value", - ) - - # Make the request - operation = client.create_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.CreateHubRequest, dict]): - The request object. Request for - [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub] - method. - parent (str): - Required. The parent resource. - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - hub (google.cloud.networkconnectivity_v1.types.Hub): - Required. The initial values for a - new hub. - - This corresponds to the ``hub`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - hub_id (str): - Required. A unique identifier for the - hub. - - This corresponds to the ``hub_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which - you attach spokes. A single hub can contain spokes - from multiple regions. However, if any of a hub's - spokes use the site-to-site data transfer feature, - the resources associated with those spokes must all - be in the same VPC network. Spokes that do not use - site-to-site data transfer can be associated with any - VPC network in your project. - - """ - # 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([parent, hub, hub_id]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a gcn_hub.CreateHubRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, gcn_hub.CreateHubRequest): - request = gcn_hub.CreateHubRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if hub is not None: - request.hub = hub - if hub_id is not None: - request.hub_id = hub_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.create_hub] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - gcn_hub.Hub, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def update_hub(self, - request: Optional[Union[gcn_hub.UpdateHubRequest, dict]] = None, - *, - hub: Optional[gcn_hub.Hub] = None, - update_mask: Optional[field_mask_pb2.FieldMask] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Updates the description and/or labels of a Network - Connectivity Center hub. - - .. 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 networkconnectivity_v1 - - def sample_update_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.UpdateHubRequest( - ) - - # Make the request - operation = client.update_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.UpdateHubRequest, dict]): - The request object. Request for - [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub] - method. - hub (google.cloud.networkconnectivity_v1.types.Hub): - Required. The state that the hub - should be in after the update. - - This corresponds to the ``hub`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - update_mask (google.protobuf.field_mask_pb2.FieldMask): - Optional. In the case of an update to an existing hub, - field mask is used to specify the fields to be - overwritten. The fields specified in the update_mask are - relative to the resource, not the full request. A field - is overwritten if it is in the mask. If the user does - not provide a mask, then all fields are overwritten. - - This corresponds to the ``update_mask`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which - you attach spokes. A single hub can contain spokes - from multiple regions. However, if any of a hub's - spokes use the site-to-site data transfer feature, - the resources associated with those spokes must all - be in the same VPC network. Spokes that do not use - site-to-site data transfer can be associated with any - VPC network in your project. - - """ - # 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([hub, update_mask]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a gcn_hub.UpdateHubRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, gcn_hub.UpdateHubRequest): - request = gcn_hub.UpdateHubRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if hub is not None: - request.hub = hub - if update_mask is not None: - request.update_mask = update_mask - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.update_hub] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("hub.name", request.hub.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - gcn_hub.Hub, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def delete_hub(self, - request: Optional[Union[hub.DeleteHubRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Deletes a Network Connectivity Center hub. - - .. 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 networkconnectivity_v1 - - def sample_delete_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeleteHubRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.DeleteHubRequest, dict]): - The request object. The request for - [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub]. - name (str): - Required. The name of the hub to - delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.DeleteHubRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.DeleteHubRequest): - request = hub.DeleteHubRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.delete_hub] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def list_hub_spokes(self, - request: Optional[Union[hub.ListHubSpokesRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListHubSpokesPager: - r"""Lists the Network Connectivity Center spokes - associated with a specified hub and location. The list - includes both spokes that are attached to the hub and - spokes that have been proposed but not yet accepted. - - .. 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 networkconnectivity_v1 - - def sample_list_hub_spokes(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListHubSpokesRequest( - name="name_value", - ) - - # Make the request - page_result = client.list_hub_spokes(request=request) - - # Handle the response - for response in page_result: - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest, dict]): - The request object. The request for - [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. - name (str): - Required. The name of the hub. - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesPager: - The response for - [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. - - 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.ListHubSpokesRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.ListHubSpokesRequest): - request = hub.ListHubSpokesRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list_hub_spokes] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # 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.ListHubSpokesPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - def list_spokes(self, - request: Optional[Union[hub.ListSpokesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListSpokesPager: - r"""Lists the Network Connectivity Center spokes in a - specified project and location. - - .. 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 networkconnectivity_v1 - - def sample_list_spokes(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListSpokesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_spokes(request=request) - - # Handle the response - for response in page_result: - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.ListSpokesRequest, dict]): - The request object. The request for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. - parent (str): - Required. The parent resource. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesPager: - The response for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. - - 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([parent]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.ListSpokesRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.ListSpokesRequest): - request = hub.ListSpokesRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list_spokes] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # 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.ListSpokesPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - def get_spoke(self, - request: Optional[Union[hub.GetSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Spoke: - r"""Gets details about a Network Connectivity Center - spoke. - - .. 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 networkconnectivity_v1 - - def sample_get_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetSpokeRequest( - name="name_value", - ) - - # Make the request - response = client.get_spoke(request=request) - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.GetSpokeRequest, dict]): - The request object. The request for - [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke]. - name (str): - Required. The name of the spoke - resource. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.Spoke: - A Network Connectivity Center spoke represents one or more network - connectivity resources. - - When you create a spoke, you associate it with a hub. - You must also identify a value for exactly one of the - following fields: - - - linked_vpn_tunnels - - linked_interconnect_attachments - - linked_router_appliance_instances - - linked_vpc_network - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.GetSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.GetSpokeRequest): - request = hub.GetSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - def create_spoke(self, - request: Optional[Union[hub.CreateSpokeRequest, dict]] = None, - *, - parent: Optional[str] = None, - spoke: Optional[hub.Spoke] = None, - spoke_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Creates a Network Connectivity Center spoke. - - .. 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 networkconnectivity_v1 - - def sample_create_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.CreateSpokeRequest( - parent="parent_value", - spoke_id="spoke_id_value", - ) - - # Make the request - operation = client.create_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.CreateSpokeRequest, dict]): - The request object. The request for - [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke]. - parent (str): - Required. The parent resource. - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke (google.cloud.networkconnectivity_v1.types.Spoke): - Required. The initial values for a - new spoke. - - This corresponds to the ``spoke`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke_id (str): - Required. Unique id for the spoke to - create. - - This corresponds to the ``spoke_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network - connectivity resources. - - When you create a spoke, you associate it with a hub. - You must also identify a value for exactly one of the - following fields: - - - linked_vpn_tunnels - - linked_interconnect_attachments - - linked_router_appliance_instances - - linked_vpc_network - - """ - # 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([parent, spoke, spoke_id]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.CreateSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.CreateSpokeRequest): - request = hub.CreateSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if spoke is not None: - request.spoke = spoke - if spoke_id is not None: - request.spoke_id = spoke_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.create_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - hub.Spoke, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def update_spoke(self, - request: Optional[Union[hub.UpdateSpokeRequest, dict]] = None, - *, - spoke: Optional[hub.Spoke] = None, - update_mask: Optional[field_mask_pb2.FieldMask] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Updates the parameters of a Network Connectivity - Center spoke. - - .. 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 networkconnectivity_v1 - - def sample_update_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.UpdateSpokeRequest( - ) - - # Make the request - operation = client.update_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest, dict]): - The request object. Request for - [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke] - method. - spoke (google.cloud.networkconnectivity_v1.types.Spoke): - Required. The state that the spoke - should be in after the update. - - This corresponds to the ``spoke`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - update_mask (google.protobuf.field_mask_pb2.FieldMask): - Optional. In the case of an update to an existing spoke, - field mask is used to specify the fields to be - overwritten. The fields specified in the update_mask are - relative to the resource, not the full request. A field - is overwritten if it is in the mask. If the user does - not provide a mask, then all fields are overwritten. - - This corresponds to the ``update_mask`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network - connectivity resources. - - When you create a spoke, you associate it with a hub. - You must also identify a value for exactly one of the - following fields: - - - linked_vpn_tunnels - - linked_interconnect_attachments - - linked_router_appliance_instances - - linked_vpc_network - - """ - # 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([spoke, update_mask]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.UpdateSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.UpdateSpokeRequest): - request = hub.UpdateSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if spoke is not None: - request.spoke = spoke - if update_mask is not None: - request.update_mask = update_mask - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.update_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("spoke.name", request.spoke.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - hub.Spoke, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def reject_hub_spoke(self, - request: Optional[Union[hub.RejectHubSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - spoke_uri: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Rejects a Network Connectivity Center spoke from being attached - to a hub. If the spoke was previously in the ``ACTIVE`` state, - it transitions to the ``INACTIVE`` state and is no longer able - to connect to other spokes that are attached to the hub. - - .. 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 networkconnectivity_v1 - - def sample_reject_hub_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.RejectHubSpokeRequest( - name="name_value", - spoke_uri="spoke_uri_value", - ) - - # Make the request - operation = client.reject_hub_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest, dict]): - The request object. The request for - [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. - name (str): - Required. The name of the hub from - which to reject the spoke. - - This corresponds to the ``name`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke_uri (str): - Required. The URI of the spoke to - reject from the hub. - - This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.RejectHubSpokeResponse` The response for - [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. - - """ - # 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([name, spoke_uri]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.RejectHubSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.RejectHubSpokeRequest): - request = hub.RejectHubSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - if spoke_uri is not None: - request.spoke_uri = spoke_uri - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.reject_hub_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - hub.RejectHubSpokeResponse, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def accept_hub_spoke(self, - request: Optional[Union[hub.AcceptHubSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - spoke_uri: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Accepts a proposal to attach a Network Connectivity - Center spoke to a hub. - - .. 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 networkconnectivity_v1 - - def sample_accept_hub_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.AcceptHubSpokeRequest( - name="name_value", - spoke_uri="spoke_uri_value", - ) - - # Make the request - operation = client.accept_hub_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest, dict]): - The request object. The request for - [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. - name (str): - Required. The name of the hub into - which to accept the spoke. - - This corresponds to the ``name`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke_uri (str): - Required. The URI of the spoke to - accept into the hub. - - This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.AcceptHubSpokeResponse` The response for - [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. - - """ - # 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([name, spoke_uri]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.AcceptHubSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.AcceptHubSpokeRequest): - request = hub.AcceptHubSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - if spoke_uri is not None: - request.spoke_uri = spoke_uri - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.accept_hub_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - hub.AcceptHubSpokeResponse, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def delete_spoke(self, - request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Deletes a Network Connectivity Center spoke. - - .. 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 networkconnectivity_v1 - - def sample_delete_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeleteSpokeRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest, dict]): - The request object. The request for - [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. - name (str): - Required. The name of the spoke to - delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.DeleteSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.DeleteSpokeRequest): - request = hub.DeleteSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.delete_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def get_route_table(self, - request: Optional[Union[hub.GetRouteTableRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.RouteTable: - r"""Gets details about a Network Connectivity Center - route table. - - .. 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 networkconnectivity_v1 - - def sample_get_route_table(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetRouteTableRequest( - name="name_value", - ) - - # Make the request - response = client.get_route_table(request=request) - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.GetRouteTableRequest, dict]): - The request object. The request for - [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. - name (str): - Required. The name of the route table - resource. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.RouteTable: - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.GetRouteTableRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.GetRouteTableRequest): - request = hub.GetRouteTableRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_route_table] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - def get_route(self, - request: Optional[Union[hub.GetRouteRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Route: - r"""Gets details about the specified route. - - .. 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 networkconnectivity_v1 - - def sample_get_route(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetRouteRequest( - name="name_value", - ) - - # Make the request - response = client.get_route(request=request) - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.GetRouteRequest, dict]): - The request object. The request for - [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. - name (str): - Required. The name of the route - resource. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.Route: - A route defines a path from VM - instances within a spoke to a specific - destination resource. Only VPC spokes - have routes. - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.GetRouteRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.GetRouteRequest): - request = hub.GetRouteRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_route] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - def list_routes(self, - request: Optional[Union[hub.ListRoutesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListRoutesPager: - r"""Lists routes in a given 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 networkconnectivity_v1 - - def sample_list_routes(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListRoutesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_routes(request=request) - - # Handle the response - for response in page_result: - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.ListRoutesRequest, dict]): - The request object. Request for - [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] - method. - parent (str): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesPager: - Response for - [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] - method. - - 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([parent]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.ListRoutesRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.ListRoutesRequest): - request = hub.ListRoutesRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list_routes] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # 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.ListRoutesPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - def list_route_tables(self, - request: Optional[Union[hub.ListRouteTablesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListRouteTablesPager: - r"""Lists route tables in a given 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 networkconnectivity_v1 - - def sample_list_route_tables(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListRouteTablesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_route_tables(request=request) - - # Handle the response - for response in page_result: - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest, dict]): - The request object. Request for - [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] - method. - parent (str): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesPager: - Response for - [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] - method. - - 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([parent]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.ListRouteTablesRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.ListRouteTablesRequest): - request = hub.ListRouteTablesRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list_route_tables] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # 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.ListRouteTablesPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - def get_group(self, - request: Optional[Union[hub.GetGroupRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Group: - r"""Gets details about a Network Connectivity Center - group. - - .. 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 networkconnectivity_v1 - - def sample_get_group(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetGroupRequest( - name="name_value", - ) - - # Make the request - response = client.get_group(request=request) - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.GetGroupRequest, dict]): - The request object. The request for - [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. - name (str): - Required. The name of the route table - resource. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.Group: - A group represents a subset of spokes - attached to a hub. - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.GetGroupRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.GetGroupRequest): - request = hub.GetGroupRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_group] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - def list_groups(self, - request: Optional[Union[hub.ListGroupsRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListGroupsPager: - r"""Lists groups in a given hub. - - .. 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 networkconnectivity_v1 - - def sample_list_groups(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListGroupsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_groups(request=request) - - # Handle the response - for response in page_result: - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.ListGroupsRequest, dict]): - The request object. Request for - [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] - method. - parent (str): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsPager: - Response for - [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] - method. - - 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([parent]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.ListGroupsRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.ListGroupsRequest): - request = hub.ListGroupsRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list_groups] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # 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.ListGroupsPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - def __enter__(self) -> "HubServiceClient": - return self - - def __exit__(self, type, value, traceback): - """Releases underlying transport's resources. - - .. warning:: - ONLY use as a context manager if the transport is NOT shared - with other clients! Exiting the with block will CLOSE the transport - and may cause errors in other clients! - """ - self.transport.close() - - def list_operations( - self, - request: Optional[operations_pb2.ListOperationsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operations_pb2.ListOperationsResponse: - r"""Lists operations that match the specified filter in the request. - - Args: - request (:class:`~.operations_pb2.ListOperationsRequest`): - The request object. Request message for - `ListOperations` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.operations_pb2.ListOperationsResponse: - Response message for ``ListOperations`` method. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.ListOperationsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.list_operations, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def get_operation( - self, - request: Optional[operations_pb2.GetOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operations_pb2.Operation: - r"""Gets the latest state of a long-running operation. - - Args: - request (:class:`~.operations_pb2.GetOperationRequest`): - The request object. Request message for - `GetOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.operations_pb2.Operation: - An ``Operation`` object. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.GetOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.get_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def delete_operation( - self, - request: Optional[operations_pb2.DeleteOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> None: - r"""Deletes a long-running operation. - - This method indicates that the client is no longer interested - in the operation result. It does not cancel the operation. - If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. - - Args: - request (:class:`~.operations_pb2.DeleteOperationRequest`): - The request object. Request message for - `DeleteOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - None - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.DeleteOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.delete_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - rpc(request, retry=retry, timeout=timeout, metadata=metadata,) - - def cancel_operation( - self, - request: Optional[operations_pb2.CancelOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> None: - r"""Starts asynchronous cancellation on a long-running operation. - - The server makes a best effort to cancel the operation, but success - is not guaranteed. If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. - - Args: - request (:class:`~.operations_pb2.CancelOperationRequest`): - The request object. Request message for - `CancelOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - None - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.CancelOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.cancel_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - rpc(request, retry=retry, timeout=timeout, metadata=metadata,) - - def set_iam_policy( - self, - request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_pb2.Policy: - r"""Sets the IAM access control policy on the specified function. - - Replaces any existing policy. - - Args: - request (:class:`~.iam_policy_pb2.SetIamPolicyRequest`): - The request object. Request message for `SetIamPolicy` - method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.policy_pb2.Policy: - Defines an Identity and Access Management (IAM) policy. - It is used to specify access control policies for Cloud - Platform resources. - A ``Policy`` is a collection of ``bindings``. A - ``binding`` binds one or more ``members`` to a single - ``role``. Members can be user accounts, service - accounts, Google groups, and domains (such as G Suite). - A ``role`` is a named list of permissions (defined by - IAM or configured by users). A ``binding`` can - optionally specify a ``condition``, which is a logic - expression that further constrains the role binding - based on attributes about the request and/or target - resource. - - **JSON Example** - - :: - - { - "bindings": [ - { - "role": "roles/resourcemanager.organizationAdmin", - "members": [ - "user:mike@example.com", - "group:admins@example.com", - "domain:google.com", - "serviceAccount:my-project-id@appspot.gserviceaccount.com" - ] - }, - { - "role": "roles/resourcemanager.organizationViewer", - "members": ["user:eve@example.com"], - "condition": { - "title": "expirable access", - "description": "Does not grant access after Sep 2020", - "expression": "request.time < - timestamp('2020-10-01T00:00:00.000Z')", - } - } - ] - } - - **YAML Example** - - :: - - bindings: - - members: - - user:mike@example.com - - group:admins@example.com - - domain:google.com - - serviceAccount:my-project-id@appspot.gserviceaccount.com - role: roles/resourcemanager.organizationAdmin - - members: - - user:eve@example.com - role: roles/resourcemanager.organizationViewer - condition: - title: expirable access - description: Does not grant access after Sep 2020 - expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - - For a description of IAM and its features, see the `IAM - developer's - guide `__. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.SetIamPolicyRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.set_iam_policy, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def get_iam_policy( - self, - request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_pb2.Policy: - r"""Gets the IAM access control policy for a function. - - Returns an empty policy if the function exists and does not have a - policy set. - - Args: - request (:class:`~.iam_policy_pb2.GetIamPolicyRequest`): - The request object. Request message for `GetIamPolicy` - method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.policy_pb2.Policy: - Defines an Identity and Access Management (IAM) policy. - It is used to specify access control policies for Cloud - Platform resources. - A ``Policy`` is a collection of ``bindings``. A - ``binding`` binds one or more ``members`` to a single - ``role``. Members can be user accounts, service - accounts, Google groups, and domains (such as G Suite). - A ``role`` is a named list of permissions (defined by - IAM or configured by users). A ``binding`` can - optionally specify a ``condition``, which is a logic - expression that further constrains the role binding - based on attributes about the request and/or target - resource. - - **JSON Example** - - :: - - { - "bindings": [ - { - "role": "roles/resourcemanager.organizationAdmin", - "members": [ - "user:mike@example.com", - "group:admins@example.com", - "domain:google.com", - "serviceAccount:my-project-id@appspot.gserviceaccount.com" - ] - }, - { - "role": "roles/resourcemanager.organizationViewer", - "members": ["user:eve@example.com"], - "condition": { - "title": "expirable access", - "description": "Does not grant access after Sep 2020", - "expression": "request.time < - timestamp('2020-10-01T00:00:00.000Z')", - } - } - ] - } - - **YAML Example** - - :: - - bindings: - - members: - - user:mike@example.com - - group:admins@example.com - - domain:google.com - - serviceAccount:my-project-id@appspot.gserviceaccount.com - role: roles/resourcemanager.organizationAdmin - - members: - - user:eve@example.com - role: roles/resourcemanager.organizationViewer - condition: - title: expirable access - description: Does not grant access after Sep 2020 - expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - - For a description of IAM and its features, see the `IAM - developer's - guide `__. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.GetIamPolicyRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.get_iam_policy, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def test_iam_permissions( - self, - request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> iam_policy_pb2.TestIamPermissionsResponse: - r"""Tests the specified IAM permissions against the IAM access control - policy for a function. - - If the function does not exist, this will return an empty set - of permissions, not a NOT_FOUND error. - - Args: - request (:class:`~.iam_policy_pb2.TestIamPermissionsRequest`): - The request object. Request message for - `TestIamPermissions` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.iam_policy_pb2.TestIamPermissionsResponse: - Response message for ``TestIamPermissions`` method. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.TestIamPermissionsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.test_iam_permissions, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def get_location( - self, - request: Optional[locations_pb2.GetLocationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> locations_pb2.Location: - r"""Gets information about a location. - - Args: - request (:class:`~.location_pb2.GetLocationRequest`): - The request object. Request message for - `GetLocation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.location_pb2.Location: - Location object. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = locations_pb2.GetLocationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.get_location, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def list_locations( - self, - request: Optional[locations_pb2.ListLocationsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> locations_pb2.ListLocationsResponse: - r"""Lists information about the supported locations for this service. - - Args: - request (:class:`~.location_pb2.ListLocationsRequest`): - The request object. Request message for - `ListLocations` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.location_pb2.ListLocationsResponse: - Response message for ``ListLocations`` method. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = locations_pb2.ListLocationsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.list_locations, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - -DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) - - -__all__ = ( - "HubServiceClient", -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py deleted file mode 100644 index 9e66a251c2e3..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py +++ /dev/null @@ -1,744 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator - -from google.cloud.networkconnectivity_v1.types import hub - - -class ListHubsPager: - """A pager for iterating through ``list_hubs`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListHubsResponse` object, and - provides an ``__iter__`` method to iterate through its - ``hubs`` field. - - If there are more pages, the ``__iter__`` method will make additional - ``ListHubs`` requests and continue to iterate - through the ``hubs`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubsResponse` - 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[..., hub.ListHubsResponse], - request: hub.ListHubsRequest, - response: hub.ListHubsResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiate the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListHubsRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListHubsResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListHubsRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - def pages(self) -> Iterator[hub.ListHubsResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = self._method(self._request, metadata=self._metadata) - yield self._response - - def __iter__(self) -> Iterator[hub.Hub]: - for page in self.pages: - yield from page.hubs - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListHubsAsyncPager: - """A pager for iterating through ``list_hubs`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListHubsResponse` object, and - provides an ``__aiter__`` method to iterate through its - ``hubs`` field. - - If there are more pages, the ``__aiter__`` method will make additional - ``ListHubs`` requests and continue to iterate - through the ``hubs`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubsResponse` - 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[..., Awaitable[hub.ListHubsResponse]], - request: hub.ListHubsRequest, - response: hub.ListHubsResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiates the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListHubsRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListHubsResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListHubsRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - async def pages(self) -> AsyncIterator[hub.ListHubsResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = await self._method(self._request, metadata=self._metadata) - yield self._response - def __aiter__(self) -> AsyncIterator[hub.Hub]: - async def async_generator(): - async for page in self.pages: - for response in page.hubs: - yield response - - return async_generator() - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListHubSpokesPager: - """A pager for iterating through ``list_hub_spokes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` object, and - provides an ``__iter__`` method to iterate through its - ``spokes`` field. - - If there are more pages, the ``__iter__`` method will make additional - ``ListHubSpokes`` requests and continue to iterate - through the ``spokes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` - 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[..., hub.ListHubSpokesResponse], - request: hub.ListHubSpokesRequest, - response: hub.ListHubSpokesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiate the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListHubSpokesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - def pages(self) -> Iterator[hub.ListHubSpokesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = self._method(self._request, metadata=self._metadata) - yield self._response - - def __iter__(self) -> Iterator[hub.Spoke]: - for page in self.pages: - yield from page.spokes - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListHubSpokesAsyncPager: - """A pager for iterating through ``list_hub_spokes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` object, and - provides an ``__aiter__`` method to iterate through its - ``spokes`` field. - - If there are more pages, the ``__aiter__`` method will make additional - ``ListHubSpokes`` requests and continue to iterate - through the ``spokes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` - 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[..., Awaitable[hub.ListHubSpokesResponse]], - request: hub.ListHubSpokesRequest, - response: hub.ListHubSpokesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiates the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListHubSpokesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - async def pages(self) -> AsyncIterator[hub.ListHubSpokesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = await self._method(self._request, metadata=self._metadata) - yield self._response - def __aiter__(self) -> AsyncIterator[hub.Spoke]: - async def async_generator(): - async for page in self.pages: - for response in page.spokes: - yield response - - return async_generator() - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListSpokesPager: - """A pager for iterating through ``list_spokes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListSpokesResponse` object, and - provides an ``__iter__`` method to iterate through its - ``spokes`` field. - - If there are more pages, the ``__iter__`` method will make additional - ``ListSpokes`` requests and continue to iterate - through the ``spokes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListSpokesResponse` - 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[..., hub.ListSpokesResponse], - request: hub.ListSpokesRequest, - response: hub.ListSpokesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiate the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListSpokesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListSpokesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListSpokesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - def pages(self) -> Iterator[hub.ListSpokesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = self._method(self._request, metadata=self._metadata) - yield self._response - - def __iter__(self) -> Iterator[hub.Spoke]: - for page in self.pages: - yield from page.spokes - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListSpokesAsyncPager: - """A pager for iterating through ``list_spokes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListSpokesResponse` object, and - provides an ``__aiter__`` method to iterate through its - ``spokes`` field. - - If there are more pages, the ``__aiter__`` method will make additional - ``ListSpokes`` requests and continue to iterate - through the ``spokes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListSpokesResponse` - 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[..., Awaitable[hub.ListSpokesResponse]], - request: hub.ListSpokesRequest, - response: hub.ListSpokesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiates the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListSpokesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListSpokesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListSpokesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - async def pages(self) -> AsyncIterator[hub.ListSpokesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = await self._method(self._request, metadata=self._metadata) - yield self._response - def __aiter__(self) -> AsyncIterator[hub.Spoke]: - async def async_generator(): - async for page in self.pages: - for response in page.spokes: - yield response - - return async_generator() - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListRoutesPager: - """A pager for iterating through ``list_routes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` object, and - provides an ``__iter__`` method to iterate through its - ``routes`` field. - - If there are more pages, the ``__iter__`` method will make additional - ``ListRoutes`` requests and continue to iterate - through the ``routes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` - 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[..., hub.ListRoutesResponse], - request: hub.ListRoutesRequest, - response: hub.ListRoutesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiate the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListRoutesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListRoutesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListRoutesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - def pages(self) -> Iterator[hub.ListRoutesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = self._method(self._request, metadata=self._metadata) - yield self._response - - def __iter__(self) -> Iterator[hub.Route]: - for page in self.pages: - yield from page.routes - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListRoutesAsyncPager: - """A pager for iterating through ``list_routes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` object, and - provides an ``__aiter__`` method to iterate through its - ``routes`` field. - - If there are more pages, the ``__aiter__`` method will make additional - ``ListRoutes`` requests and continue to iterate - through the ``routes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` - 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[..., Awaitable[hub.ListRoutesResponse]], - request: hub.ListRoutesRequest, - response: hub.ListRoutesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiates the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListRoutesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListRoutesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListRoutesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - async def pages(self) -> AsyncIterator[hub.ListRoutesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = await self._method(self._request, metadata=self._metadata) - yield self._response - def __aiter__(self) -> AsyncIterator[hub.Route]: - async def async_generator(): - async for page in self.pages: - for response in page.routes: - yield response - - return async_generator() - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListRouteTablesPager: - """A pager for iterating through ``list_route_tables`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` object, and - provides an ``__iter__`` method to iterate through its - ``route_tables`` field. - - If there are more pages, the ``__iter__`` method will make additional - ``ListRouteTables`` requests and continue to iterate - through the ``route_tables`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` - 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[..., hub.ListRouteTablesResponse], - request: hub.ListRouteTablesRequest, - response: hub.ListRouteTablesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiate the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListRouteTablesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - def pages(self) -> Iterator[hub.ListRouteTablesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = self._method(self._request, metadata=self._metadata) - yield self._response - - def __iter__(self) -> Iterator[hub.RouteTable]: - for page in self.pages: - yield from page.route_tables - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListRouteTablesAsyncPager: - """A pager for iterating through ``list_route_tables`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` object, and - provides an ``__aiter__`` method to iterate through its - ``route_tables`` field. - - If there are more pages, the ``__aiter__`` method will make additional - ``ListRouteTables`` requests and continue to iterate - through the ``route_tables`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` - 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[..., Awaitable[hub.ListRouteTablesResponse]], - request: hub.ListRouteTablesRequest, - response: hub.ListRouteTablesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiates the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListRouteTablesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - async def pages(self) -> AsyncIterator[hub.ListRouteTablesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = await self._method(self._request, metadata=self._metadata) - yield self._response - def __aiter__(self) -> AsyncIterator[hub.RouteTable]: - async def async_generator(): - async for page in self.pages: - for response in page.route_tables: - yield response - - return async_generator() - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListGroupsPager: - """A pager for iterating through ``list_groups`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` object, and - provides an ``__iter__`` method to iterate through its - ``groups`` field. - - If there are more pages, the ``__iter__`` method will make additional - ``ListGroups`` requests and continue to iterate - through the ``groups`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` - 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[..., hub.ListGroupsResponse], - request: hub.ListGroupsRequest, - response: hub.ListGroupsResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiate the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListGroupsRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListGroupsResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListGroupsRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - def pages(self) -> Iterator[hub.ListGroupsResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = self._method(self._request, metadata=self._metadata) - yield self._response - - def __iter__(self) -> Iterator[hub.Group]: - for page in self.pages: - yield from page.groups - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListGroupsAsyncPager: - """A pager for iterating through ``list_groups`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` object, and - provides an ``__aiter__`` method to iterate through its - ``groups`` field. - - If there are more pages, the ``__aiter__`` method will make additional - ``ListGroups`` requests and continue to iterate - through the ``groups`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` - 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[..., Awaitable[hub.ListGroupsResponse]], - request: hub.ListGroupsRequest, - response: hub.ListGroupsResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiates the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListGroupsRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListGroupsResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListGroupsRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - async def pages(self) -> AsyncIterator[hub.ListGroupsResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = await self._method(self._request, metadata=self._metadata) - yield self._response - def __aiter__(self) -> AsyncIterator[hub.Group]: - async def async_generator(): - async for page in self.pages: - for response in page.groups: - yield response - - return async_generator() - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/__init__.py deleted file mode 100644 index 029a0f72b9dd..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from collections import OrderedDict -from typing import Dict, Type - -from .base import HubServiceTransport -from .grpc import HubServiceGrpcTransport -from .grpc_asyncio import HubServiceGrpcAsyncIOTransport - - -# Compile a registry of transports. -_transport_registry = OrderedDict() # type: Dict[str, Type[HubServiceTransport]] -_transport_registry['grpc'] = HubServiceGrpcTransport -_transport_registry['grpc_asyncio'] = HubServiceGrpcAsyncIOTransport - -__all__ = ( - 'HubServiceTransport', - 'HubServiceGrpcTransport', - 'HubServiceGrpcAsyncIOTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py deleted file mode 100644 index c04f1d1d689e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py +++ /dev/null @@ -1,493 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import abc -from typing import Awaitable, Callable, Dict, Optional, Sequence, Union - -from google.cloud.networkconnectivity_v1 import gapic_version as package_version - -import google.auth # type: ignore -import google.api_core -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import retry as retries -from google.api_core import operations_v1 -from google.auth import credentials as ga_credentials # type: ignore -from google.oauth2 import service_account # type: ignore - -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.types import hub -from google.cloud.networkconnectivity_v1.types import hub as gcn_hub -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore - -DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) - - -class HubServiceTransport(abc.ABC): - """Abstract transport class for HubService.""" - - AUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - ) - - DEFAULT_HOST: str = 'networkconnectivity.googleapis.com' - def __init__( - self, *, - host: str = DEFAULT_HOST, - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - quota_project_id: Optional[str] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - always_use_jwt_access: Optional[bool] = False, - api_audience: Optional[str] = None, - **kwargs, - ) -> None: - """Instantiate the transport. - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is mutually exclusive with credentials. - scopes (Optional[Sequence[str]]): A list of scopes. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - """ - - scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} - - # Save the scopes. - self._scopes = scopes - - # If no credentials are provided, then determine the appropriate - # defaults. - if credentials and credentials_file: - raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive") - - if credentials_file is not None: - credentials, _ = google.auth.load_credentials_from_file( - credentials_file, - **scopes_kwargs, - quota_project_id=quota_project_id - ) - elif credentials is None: - credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id) - # Don't apply audience if the credentials file passed from user. - if hasattr(credentials, "with_gdch_audience"): - credentials = credentials.with_gdch_audience(api_audience if api_audience else host) - - # If the credentials are service account credentials, then always try to use self signed JWT. - if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"): - credentials = credentials.with_always_use_jwt_access(True) - - # Save the credentials. - self._credentials = credentials - - # Save the hostname. Default to port 443 (HTTPS) if none is specified. - if ':' not in host: - host += ':443' - self._host = host - - def _prep_wrapped_messages(self, client_info): - # Precompute the wrapped methods. - self._wrapped_methods = { - self.list_hubs: gapic_v1.method.wrap_method( - self.list_hubs, - default_timeout=None, - client_info=client_info, - ), - self.get_hub: gapic_v1.method.wrap_method( - self.get_hub, - default_timeout=None, - client_info=client_info, - ), - self.create_hub: gapic_v1.method.wrap_method( - self.create_hub, - default_timeout=60.0, - client_info=client_info, - ), - self.update_hub: gapic_v1.method.wrap_method( - self.update_hub, - default_timeout=60.0, - client_info=client_info, - ), - self.delete_hub: gapic_v1.method.wrap_method( - self.delete_hub, - default_timeout=60.0, - client_info=client_info, - ), - self.list_hub_spokes: gapic_v1.method.wrap_method( - self.list_hub_spokes, - default_timeout=None, - client_info=client_info, - ), - self.list_spokes: gapic_v1.method.wrap_method( - self.list_spokes, - default_timeout=None, - client_info=client_info, - ), - self.get_spoke: gapic_v1.method.wrap_method( - self.get_spoke, - default_timeout=None, - client_info=client_info, - ), - self.create_spoke: gapic_v1.method.wrap_method( - self.create_spoke, - default_timeout=60.0, - client_info=client_info, - ), - self.update_spoke: gapic_v1.method.wrap_method( - self.update_spoke, - default_timeout=60.0, - client_info=client_info, - ), - self.reject_hub_spoke: gapic_v1.method.wrap_method( - self.reject_hub_spoke, - default_timeout=None, - client_info=client_info, - ), - self.accept_hub_spoke: gapic_v1.method.wrap_method( - self.accept_hub_spoke, - default_timeout=None, - client_info=client_info, - ), - self.delete_spoke: gapic_v1.method.wrap_method( - self.delete_spoke, - default_timeout=60.0, - client_info=client_info, - ), - self.get_route_table: gapic_v1.method.wrap_method( - self.get_route_table, - default_timeout=None, - client_info=client_info, - ), - self.get_route: gapic_v1.method.wrap_method( - self.get_route, - default_timeout=None, - client_info=client_info, - ), - self.list_routes: gapic_v1.method.wrap_method( - self.list_routes, - default_timeout=None, - client_info=client_info, - ), - self.list_route_tables: gapic_v1.method.wrap_method( - self.list_route_tables, - default_timeout=None, - client_info=client_info, - ), - self.get_group: gapic_v1.method.wrap_method( - self.get_group, - default_timeout=None, - client_info=client_info, - ), - self.list_groups: gapic_v1.method.wrap_method( - self.list_groups, - default_timeout=None, - client_info=client_info, - ), - } - - def close(self): - """Closes resources associated with the transport. - - .. warning:: - Only call this method if the transport is NOT shared - with other clients - this may cause errors in other clients! - """ - raise NotImplementedError() - - @property - def operations_client(self): - """Return the client designed to process long-running operations.""" - raise NotImplementedError() - - @property - def list_hubs(self) -> Callable[ - [hub.ListHubsRequest], - Union[ - hub.ListHubsResponse, - Awaitable[hub.ListHubsResponse] - ]]: - raise NotImplementedError() - - @property - def get_hub(self) -> Callable[ - [hub.GetHubRequest], - Union[ - hub.Hub, - Awaitable[hub.Hub] - ]]: - raise NotImplementedError() - - @property - def create_hub(self) -> Callable[ - [gcn_hub.CreateHubRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def update_hub(self) -> Callable[ - [gcn_hub.UpdateHubRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def delete_hub(self) -> Callable[ - [hub.DeleteHubRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def list_hub_spokes(self) -> Callable[ - [hub.ListHubSpokesRequest], - Union[ - hub.ListHubSpokesResponse, - Awaitable[hub.ListHubSpokesResponse] - ]]: - raise NotImplementedError() - - @property - def list_spokes(self) -> Callable[ - [hub.ListSpokesRequest], - Union[ - hub.ListSpokesResponse, - Awaitable[hub.ListSpokesResponse] - ]]: - raise NotImplementedError() - - @property - def get_spoke(self) -> Callable[ - [hub.GetSpokeRequest], - Union[ - hub.Spoke, - Awaitable[hub.Spoke] - ]]: - raise NotImplementedError() - - @property - def create_spoke(self) -> Callable[ - [hub.CreateSpokeRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def update_spoke(self) -> Callable[ - [hub.UpdateSpokeRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def reject_hub_spoke(self) -> Callable[ - [hub.RejectHubSpokeRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def accept_hub_spoke(self) -> Callable[ - [hub.AcceptHubSpokeRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def delete_spoke(self) -> Callable[ - [hub.DeleteSpokeRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def get_route_table(self) -> Callable[ - [hub.GetRouteTableRequest], - Union[ - hub.RouteTable, - Awaitable[hub.RouteTable] - ]]: - raise NotImplementedError() - - @property - def get_route(self) -> Callable[ - [hub.GetRouteRequest], - Union[ - hub.Route, - Awaitable[hub.Route] - ]]: - raise NotImplementedError() - - @property - def list_routes(self) -> Callable[ - [hub.ListRoutesRequest], - Union[ - hub.ListRoutesResponse, - Awaitable[hub.ListRoutesResponse] - ]]: - raise NotImplementedError() - - @property - def list_route_tables(self) -> Callable[ - [hub.ListRouteTablesRequest], - Union[ - hub.ListRouteTablesResponse, - Awaitable[hub.ListRouteTablesResponse] - ]]: - raise NotImplementedError() - - @property - def get_group(self) -> Callable[ - [hub.GetGroupRequest], - Union[ - hub.Group, - Awaitable[hub.Group] - ]]: - raise NotImplementedError() - - @property - def list_groups(self) -> Callable[ - [hub.ListGroupsRequest], - Union[ - hub.ListGroupsResponse, - Awaitable[hub.ListGroupsResponse] - ]]: - raise NotImplementedError() - - @property - def list_operations( - self, - ) -> Callable[ - [operations_pb2.ListOperationsRequest], - Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]], - ]: - raise NotImplementedError() - - @property - def get_operation( - self, - ) -> Callable[ - [operations_pb2.GetOperationRequest], - Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]], - ]: - raise NotImplementedError() - - @property - def cancel_operation( - self, - ) -> Callable[ - [operations_pb2.CancelOperationRequest], - None, - ]: - raise NotImplementedError() - - @property - def delete_operation( - self, - ) -> Callable[ - [operations_pb2.DeleteOperationRequest], - None, - ]: - raise NotImplementedError() - - @property - def set_iam_policy( - self, - ) -> Callable[ - [iam_policy_pb2.SetIamPolicyRequest], - Union[policy_pb2.Policy, Awaitable[policy_pb2.Policy]], - ]: - raise NotImplementedError() - - @property - def get_iam_policy( - self, - ) -> Callable[ - [iam_policy_pb2.GetIamPolicyRequest], - Union[policy_pb2.Policy, Awaitable[policy_pb2.Policy]], - ]: - raise NotImplementedError() - - @property - def test_iam_permissions( - self, - ) -> Callable[ - [iam_policy_pb2.TestIamPermissionsRequest], - Union[ - iam_policy_pb2.TestIamPermissionsResponse, - Awaitable[iam_policy_pb2.TestIamPermissionsResponse], - ], - ]: - raise NotImplementedError() - - @property - def get_location(self, - ) -> Callable[ - [locations_pb2.GetLocationRequest], - Union[locations_pb2.Location, Awaitable[locations_pb2.Location]], - ]: - raise NotImplementedError() - - @property - def list_locations(self, - ) -> Callable[ - [locations_pb2.ListLocationsRequest], - Union[locations_pb2.ListLocationsResponse, Awaitable[locations_pb2.ListLocationsResponse]], - ]: - raise NotImplementedError() - - @property - def kind(self) -> str: - raise NotImplementedError() - - -__all__ = ( - 'HubServiceTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py deleted file mode 100644 index ad64f9a3eccb..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py +++ /dev/null @@ -1,960 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import warnings -from typing import Callable, Dict, Optional, Sequence, Tuple, Union - -from google.api_core import grpc_helpers -from google.api_core import operations_v1 -from google.api_core import gapic_v1 -import google.auth # type: ignore -from google.auth import credentials as ga_credentials # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore - -import grpc # type: ignore - -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.types import hub -from google.cloud.networkconnectivity_v1.types import hub as gcn_hub -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from .base import HubServiceTransport, DEFAULT_CLIENT_INFO - - -class HubServiceGrpcTransport(HubServiceTransport): - """gRPC backend transport for HubService. - - Network Connectivity Center is a hub-and-spoke abstraction - for network connectivity management in Google Cloud. It reduces - operational complexity through a simple, centralized - connectivity management model. - - This class defines the same methods as the primary client, so the - primary client can load the underlying transport implementation - and call it. - - It sends protocol buffers over the wire using gRPC (which is built on - top of HTTP/2); the ``grpcio`` package must be installed. - """ - _stubs: Dict[str, Callable] - - def __init__(self, *, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - channel: Optional[grpc.Channel] = None, - api_mtls_endpoint: Optional[str] = None, - client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, - client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - quota_project_id: Optional[str] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - always_use_jwt_access: Optional[bool] = False, - api_audience: Optional[str] = None, - ) -> None: - """Instantiate the transport. - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - This argument is ignored if ``channel`` is provided. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional(Sequence[str])): A list of scopes. This argument is - ignored if ``channel`` is provided. - channel (Optional[grpc.Channel]): A ``Channel`` instance through - which to make calls. - api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. - If provided, it overrides the ``host`` argument and tries to create - a mutual TLS channel with client SSL credentials from - ``client_cert_source`` or application default SSL credentials. - client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): - Deprecated. A callback to provide client SSL certificate bytes and - private key bytes, both in PEM format. It is ignored if - ``api_mtls_endpoint`` is None. - ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials - for the grpc channel. It is ignored if ``channel`` is provided. - client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): - A callback to provide client certificate bytes and private key bytes, - both in PEM format. It is used to configure a mutual TLS channel. It is - ignored if ``channel`` or ``ssl_channel_credentials`` is provided. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport - creation failed for any reason. - google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` - and ``credentials_file`` are passed. - """ - self._grpc_channel = None - self._ssl_channel_credentials = ssl_channel_credentials - self._stubs: Dict[str, Callable] = {} - self._operations_client: Optional[operations_v1.OperationsClient] = None - - if api_mtls_endpoint: - warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) - if client_cert_source: - warnings.warn("client_cert_source is deprecated", DeprecationWarning) - - if channel: - # Ignore credentials if a channel was passed. - credentials = False - # If a channel was explicitly provided, set it. - self._grpc_channel = channel - self._ssl_channel_credentials = None - - else: - if api_mtls_endpoint: - host = api_mtls_endpoint - - # Create SSL credentials with client_cert_source or application - # default SSL credentials. - if client_cert_source: - cert, key = client_cert_source() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - else: - self._ssl_channel_credentials = SslCredentials().ssl_credentials - - else: - if client_cert_source_for_mtls and not ssl_channel_credentials: - cert, key = client_cert_source_for_mtls() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - - # The base transport sets the host, credentials and scopes - super().__init__( - host=host, - credentials=credentials, - credentials_file=credentials_file, - scopes=scopes, - quota_project_id=quota_project_id, - client_info=client_info, - always_use_jwt_access=always_use_jwt_access, - api_audience=api_audience, - ) - - if not self._grpc_channel: - self._grpc_channel = type(self).create_channel( - self._host, - # use the credentials which are saved - credentials=self._credentials, - # Set ``credentials_file`` to ``None`` here as - # the credentials that we saved earlier should be used. - credentials_file=None, - scopes=self._scopes, - ssl_credentials=self._ssl_channel_credentials, - quota_project_id=quota_project_id, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - # Wrap messages. This must be done after self._grpc_channel exists - self._prep_wrapped_messages(client_info) - - @classmethod - def create_channel(cls, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - quota_project_id: Optional[str] = None, - **kwargs) -> grpc.Channel: - """Create and return a gRPC channel object. - Args: - host (Optional[str]): The host for the channel to use. - credentials (Optional[~.Credentials]): The - authorization credentials to attach to requests. These - credentials identify this application to the service. If - none are specified, the client will attempt to ascertain - the credentials from the environment. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is mutually exclusive with credentials. - scopes (Optional[Sequence[str]]): A optional list of scopes needed for this - service. These are only used when credentials are not specified and - are passed to :func:`google.auth.default`. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - kwargs (Optional[dict]): Keyword arguments, which are passed to the - channel creation. - Returns: - grpc.Channel: A gRPC channel object. - - Raises: - google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` - and ``credentials_file`` are passed. - """ - - return grpc_helpers.create_channel( - host, - credentials=credentials, - credentials_file=credentials_file, - quota_project_id=quota_project_id, - default_scopes=cls.AUTH_SCOPES, - scopes=scopes, - default_host=cls.DEFAULT_HOST, - **kwargs - ) - - @property - def grpc_channel(self) -> grpc.Channel: - """Return the channel designed to connect to this service. - """ - return self._grpc_channel - - @property - def operations_client(self) -> operations_v1.OperationsClient: - """Create the client designed to process long-running operations. - - This property caches on the instance; repeated calls return the same - client. - """ - # Quick check: Only create a new client if we do not already have one. - if self._operations_client is None: - self._operations_client = operations_v1.OperationsClient( - self.grpc_channel - ) - - # Return the client from cache. - return self._operations_client - - @property - def list_hubs(self) -> Callable[ - [hub.ListHubsRequest], - hub.ListHubsResponse]: - r"""Return a callable for the list hubs method over gRPC. - - Lists the Network Connectivity Center hubs associated - with a given project. - - Returns: - Callable[[~.ListHubsRequest], - ~.ListHubsResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_hubs' not in self._stubs: - self._stubs['list_hubs'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListHubs', - request_serializer=hub.ListHubsRequest.serialize, - response_deserializer=hub.ListHubsResponse.deserialize, - ) - return self._stubs['list_hubs'] - - @property - def get_hub(self) -> Callable[ - [hub.GetHubRequest], - hub.Hub]: - r"""Return a callable for the get hub method over gRPC. - - Gets details about a Network Connectivity Center hub. - - Returns: - Callable[[~.GetHubRequest], - ~.Hub]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_hub' not in self._stubs: - self._stubs['get_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetHub', - request_serializer=hub.GetHubRequest.serialize, - response_deserializer=hub.Hub.deserialize, - ) - return self._stubs['get_hub'] - - @property - def create_hub(self) -> Callable[ - [gcn_hub.CreateHubRequest], - operations_pb2.Operation]: - r"""Return a callable for the create hub method over gRPC. - - Creates a new Network Connectivity Center hub in the - specified project. - - Returns: - Callable[[~.CreateHubRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_hub' not in self._stubs: - self._stubs['create_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/CreateHub', - request_serializer=gcn_hub.CreateHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_hub'] - - @property - def update_hub(self) -> Callable[ - [gcn_hub.UpdateHubRequest], - operations_pb2.Operation]: - r"""Return a callable for the update hub method over gRPC. - - Updates the description and/or labels of a Network - Connectivity Center hub. - - Returns: - Callable[[~.UpdateHubRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'update_hub' not in self._stubs: - self._stubs['update_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/UpdateHub', - request_serializer=gcn_hub.UpdateHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['update_hub'] - - @property - def delete_hub(self) -> Callable[ - [hub.DeleteHubRequest], - operations_pb2.Operation]: - r"""Return a callable for the delete hub method over gRPC. - - Deletes a Network Connectivity Center hub. - - Returns: - Callable[[~.DeleteHubRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_hub' not in self._stubs: - self._stubs['delete_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/DeleteHub', - request_serializer=hub.DeleteHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_hub'] - - @property - def list_hub_spokes(self) -> Callable[ - [hub.ListHubSpokesRequest], - hub.ListHubSpokesResponse]: - r"""Return a callable for the list hub spokes method over gRPC. - - Lists the Network Connectivity Center spokes - associated with a specified hub and location. The list - includes both spokes that are attached to the hub and - spokes that have been proposed but not yet accepted. - - Returns: - Callable[[~.ListHubSpokesRequest], - ~.ListHubSpokesResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_hub_spokes' not in self._stubs: - self._stubs['list_hub_spokes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListHubSpokes', - request_serializer=hub.ListHubSpokesRequest.serialize, - response_deserializer=hub.ListHubSpokesResponse.deserialize, - ) - return self._stubs['list_hub_spokes'] - - @property - def list_spokes(self) -> Callable[ - [hub.ListSpokesRequest], - hub.ListSpokesResponse]: - r"""Return a callable for the list spokes method over gRPC. - - Lists the Network Connectivity Center spokes in a - specified project and location. - - Returns: - Callable[[~.ListSpokesRequest], - ~.ListSpokesResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_spokes' not in self._stubs: - self._stubs['list_spokes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListSpokes', - request_serializer=hub.ListSpokesRequest.serialize, - response_deserializer=hub.ListSpokesResponse.deserialize, - ) - return self._stubs['list_spokes'] - - @property - def get_spoke(self) -> Callable[ - [hub.GetSpokeRequest], - hub.Spoke]: - r"""Return a callable for the get spoke method over gRPC. - - Gets details about a Network Connectivity Center - spoke. - - Returns: - Callable[[~.GetSpokeRequest], - ~.Spoke]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_spoke' not in self._stubs: - self._stubs['get_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetSpoke', - request_serializer=hub.GetSpokeRequest.serialize, - response_deserializer=hub.Spoke.deserialize, - ) - return self._stubs['get_spoke'] - - @property - def create_spoke(self) -> Callable[ - [hub.CreateSpokeRequest], - operations_pb2.Operation]: - r"""Return a callable for the create spoke method over gRPC. - - Creates a Network Connectivity Center spoke. - - Returns: - Callable[[~.CreateSpokeRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_spoke' not in self._stubs: - self._stubs['create_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/CreateSpoke', - request_serializer=hub.CreateSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_spoke'] - - @property - def update_spoke(self) -> Callable[ - [hub.UpdateSpokeRequest], - operations_pb2.Operation]: - r"""Return a callable for the update spoke method over gRPC. - - Updates the parameters of a Network Connectivity - Center spoke. - - Returns: - Callable[[~.UpdateSpokeRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'update_spoke' not in self._stubs: - self._stubs['update_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/UpdateSpoke', - request_serializer=hub.UpdateSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['update_spoke'] - - @property - def reject_hub_spoke(self) -> Callable[ - [hub.RejectHubSpokeRequest], - operations_pb2.Operation]: - r"""Return a callable for the reject hub spoke method over gRPC. - - Rejects a Network Connectivity Center spoke from being attached - to a hub. If the spoke was previously in the ``ACTIVE`` state, - it transitions to the ``INACTIVE`` state and is no longer able - to connect to other spokes that are attached to the hub. - - Returns: - Callable[[~.RejectHubSpokeRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'reject_hub_spoke' not in self._stubs: - self._stubs['reject_hub_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/RejectHubSpoke', - request_serializer=hub.RejectHubSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['reject_hub_spoke'] - - @property - def accept_hub_spoke(self) -> Callable[ - [hub.AcceptHubSpokeRequest], - operations_pb2.Operation]: - r"""Return a callable for the accept hub spoke method over gRPC. - - Accepts a proposal to attach a Network Connectivity - Center spoke to a hub. - - Returns: - Callable[[~.AcceptHubSpokeRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'accept_hub_spoke' not in self._stubs: - self._stubs['accept_hub_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/AcceptHubSpoke', - request_serializer=hub.AcceptHubSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['accept_hub_spoke'] - - @property - def delete_spoke(self) -> Callable[ - [hub.DeleteSpokeRequest], - operations_pb2.Operation]: - r"""Return a callable for the delete spoke method over gRPC. - - Deletes a Network Connectivity Center spoke. - - Returns: - Callable[[~.DeleteSpokeRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_spoke' not in self._stubs: - self._stubs['delete_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/DeleteSpoke', - request_serializer=hub.DeleteSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_spoke'] - - @property - def get_route_table(self) -> Callable[ - [hub.GetRouteTableRequest], - hub.RouteTable]: - r"""Return a callable for the get route table method over gRPC. - - Gets details about a Network Connectivity Center - route table. - - Returns: - Callable[[~.GetRouteTableRequest], - ~.RouteTable]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_route_table' not in self._stubs: - self._stubs['get_route_table'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetRouteTable', - request_serializer=hub.GetRouteTableRequest.serialize, - response_deserializer=hub.RouteTable.deserialize, - ) - return self._stubs['get_route_table'] - - @property - def get_route(self) -> Callable[ - [hub.GetRouteRequest], - hub.Route]: - r"""Return a callable for the get route method over gRPC. - - Gets details about the specified route. - - Returns: - Callable[[~.GetRouteRequest], - ~.Route]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_route' not in self._stubs: - self._stubs['get_route'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetRoute', - request_serializer=hub.GetRouteRequest.serialize, - response_deserializer=hub.Route.deserialize, - ) - return self._stubs['get_route'] - - @property - def list_routes(self) -> Callable[ - [hub.ListRoutesRequest], - hub.ListRoutesResponse]: - r"""Return a callable for the list routes method over gRPC. - - Lists routes in a given project. - - Returns: - Callable[[~.ListRoutesRequest], - ~.ListRoutesResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_routes' not in self._stubs: - self._stubs['list_routes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListRoutes', - request_serializer=hub.ListRoutesRequest.serialize, - response_deserializer=hub.ListRoutesResponse.deserialize, - ) - return self._stubs['list_routes'] - - @property - def list_route_tables(self) -> Callable[ - [hub.ListRouteTablesRequest], - hub.ListRouteTablesResponse]: - r"""Return a callable for the list route tables method over gRPC. - - Lists route tables in a given project. - - Returns: - Callable[[~.ListRouteTablesRequest], - ~.ListRouteTablesResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_route_tables' not in self._stubs: - self._stubs['list_route_tables'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListRouteTables', - request_serializer=hub.ListRouteTablesRequest.serialize, - response_deserializer=hub.ListRouteTablesResponse.deserialize, - ) - return self._stubs['list_route_tables'] - - @property - def get_group(self) -> Callable[ - [hub.GetGroupRequest], - hub.Group]: - r"""Return a callable for the get group method over gRPC. - - Gets details about a Network Connectivity Center - group. - - Returns: - Callable[[~.GetGroupRequest], - ~.Group]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_group' not in self._stubs: - self._stubs['get_group'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetGroup', - request_serializer=hub.GetGroupRequest.serialize, - response_deserializer=hub.Group.deserialize, - ) - return self._stubs['get_group'] - - @property - def list_groups(self) -> Callable[ - [hub.ListGroupsRequest], - hub.ListGroupsResponse]: - r"""Return a callable for the list groups method over gRPC. - - Lists groups in a given hub. - - Returns: - Callable[[~.ListGroupsRequest], - ~.ListGroupsResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_groups' not in self._stubs: - self._stubs['list_groups'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListGroups', - request_serializer=hub.ListGroupsRequest.serialize, - response_deserializer=hub.ListGroupsResponse.deserialize, - ) - return self._stubs['list_groups'] - - def close(self): - self.grpc_channel.close() - - @property - def delete_operation( - self, - ) -> Callable[[operations_pb2.DeleteOperationRequest], None]: - r"""Return a callable for the delete_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "delete_operation" not in self._stubs: - self._stubs["delete_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/DeleteOperation", - request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString, - response_deserializer=None, - ) - return self._stubs["delete_operation"] - - @property - def cancel_operation( - self, - ) -> Callable[[operations_pb2.CancelOperationRequest], None]: - r"""Return a callable for the cancel_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "cancel_operation" not in self._stubs: - self._stubs["cancel_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/CancelOperation", - request_serializer=operations_pb2.CancelOperationRequest.SerializeToString, - response_deserializer=None, - ) - return self._stubs["cancel_operation"] - - @property - def get_operation( - self, - ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]: - r"""Return a callable for the get_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_operation" not in self._stubs: - self._stubs["get_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/GetOperation", - request_serializer=operations_pb2.GetOperationRequest.SerializeToString, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs["get_operation"] - - @property - def list_operations( - self, - ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]: - r"""Return a callable for the list_operations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "list_operations" not in self._stubs: - self._stubs["list_operations"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/ListOperations", - request_serializer=operations_pb2.ListOperationsRequest.SerializeToString, - response_deserializer=operations_pb2.ListOperationsResponse.FromString, - ) - return self._stubs["list_operations"] - - @property - def list_locations( - self, - ) -> Callable[[locations_pb2.ListLocationsRequest], locations_pb2.ListLocationsResponse]: - r"""Return a callable for the list locations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "list_locations" not in self._stubs: - self._stubs["list_locations"] = self.grpc_channel.unary_unary( - "/google.cloud.location.Locations/ListLocations", - request_serializer=locations_pb2.ListLocationsRequest.SerializeToString, - response_deserializer=locations_pb2.ListLocationsResponse.FromString, - ) - return self._stubs["list_locations"] - - @property - def get_location( - self, - ) -> Callable[[locations_pb2.GetLocationRequest], locations_pb2.Location]: - r"""Return a callable for the list locations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_location" not in self._stubs: - self._stubs["get_location"] = self.grpc_channel.unary_unary( - "/google.cloud.location.Locations/GetLocation", - request_serializer=locations_pb2.GetLocationRequest.SerializeToString, - response_deserializer=locations_pb2.Location.FromString, - ) - return self._stubs["get_location"] - - @property - def set_iam_policy( - self, - ) -> Callable[[iam_policy_pb2.SetIamPolicyRequest], policy_pb2.Policy]: - r"""Return a callable for the set iam policy method over gRPC. - Sets the IAM access control policy on the specified - function. Replaces any existing policy. - Returns: - Callable[[~.SetIamPolicyRequest], - ~.Policy]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "set_iam_policy" not in self._stubs: - self._stubs["set_iam_policy"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/SetIamPolicy", - request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString, - response_deserializer=policy_pb2.Policy.FromString, - ) - return self._stubs["set_iam_policy"] - - @property - def get_iam_policy( - self, - ) -> Callable[[iam_policy_pb2.GetIamPolicyRequest], policy_pb2.Policy]: - r"""Return a callable for the get iam policy method over gRPC. - Gets the IAM access control policy for a function. - Returns an empty policy if the function exists and does - not have a policy set. - Returns: - Callable[[~.GetIamPolicyRequest], - ~.Policy]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_iam_policy" not in self._stubs: - self._stubs["get_iam_policy"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/GetIamPolicy", - request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString, - response_deserializer=policy_pb2.Policy.FromString, - ) - return self._stubs["get_iam_policy"] - - @property - def test_iam_permissions( - self, - ) -> Callable[ - [iam_policy_pb2.TestIamPermissionsRequest], iam_policy_pb2.TestIamPermissionsResponse - ]: - r"""Return a callable for the test iam permissions method over gRPC. - Tests the specified permissions against the IAM access control - policy for a function. If the function does not exist, this will - return an empty set of permissions, not a NOT_FOUND error. - Returns: - Callable[[~.TestIamPermissionsRequest], - ~.TestIamPermissionsResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "test_iam_permissions" not in self._stubs: - self._stubs["test_iam_permissions"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/TestIamPermissions", - request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString, - response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString, - ) - return self._stubs["test_iam_permissions"] - - @property - def kind(self) -> str: - return "grpc" - - -__all__ = ( - 'HubServiceGrpcTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py deleted file mode 100644 index 0c9778d4635b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py +++ /dev/null @@ -1,959 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import warnings -from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union - -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers_async -from google.api_core import operations_v1 -from google.auth import credentials as ga_credentials # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore - -import grpc # type: ignore -from grpc.experimental import aio # type: ignore - -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.types import hub -from google.cloud.networkconnectivity_v1.types import hub as gcn_hub -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from .base import HubServiceTransport, DEFAULT_CLIENT_INFO -from .grpc import HubServiceGrpcTransport - - -class HubServiceGrpcAsyncIOTransport(HubServiceTransport): - """gRPC AsyncIO backend transport for HubService. - - Network Connectivity Center is a hub-and-spoke abstraction - for network connectivity management in Google Cloud. It reduces - operational complexity through a simple, centralized - connectivity management model. - - This class defines the same methods as the primary client, so the - primary client can load the underlying transport implementation - and call it. - - It sends protocol buffers over the wire using gRPC (which is built on - top of HTTP/2); the ``grpcio`` package must be installed. - """ - - _grpc_channel: aio.Channel - _stubs: Dict[str, Callable] = {} - - @classmethod - def create_channel(cls, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - quota_project_id: Optional[str] = None, - **kwargs) -> aio.Channel: - """Create and return a gRPC AsyncIO channel object. - Args: - host (Optional[str]): The host for the channel to use. - credentials (Optional[~.Credentials]): The - authorization credentials to attach to requests. These - credentials identify this application to the service. If - none are specified, the client will attempt to ascertain - the credentials from the environment. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional[Sequence[str]]): A optional list of scopes needed for this - service. These are only used when credentials are not specified and - are passed to :func:`google.auth.default`. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - kwargs (Optional[dict]): Keyword arguments, which are passed to the - channel creation. - Returns: - aio.Channel: A gRPC AsyncIO channel object. - """ - - return grpc_helpers_async.create_channel( - host, - credentials=credentials, - credentials_file=credentials_file, - quota_project_id=quota_project_id, - default_scopes=cls.AUTH_SCOPES, - scopes=scopes, - default_host=cls.DEFAULT_HOST, - **kwargs - ) - - def __init__(self, *, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - channel: Optional[aio.Channel] = None, - api_mtls_endpoint: Optional[str] = None, - client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, - client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - quota_project_id: Optional[str] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - always_use_jwt_access: Optional[bool] = False, - api_audience: Optional[str] = None, - ) -> None: - """Instantiate the transport. - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - This argument is ignored if ``channel`` is provided. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional[Sequence[str]]): A optional list of scopes needed for this - service. These are only used when credentials are not specified and - are passed to :func:`google.auth.default`. - channel (Optional[aio.Channel]): A ``Channel`` instance through - which to make calls. - api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. - If provided, it overrides the ``host`` argument and tries to create - a mutual TLS channel with client SSL credentials from - ``client_cert_source`` or application default SSL credentials. - client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): - Deprecated. A callback to provide client SSL certificate bytes and - private key bytes, both in PEM format. It is ignored if - ``api_mtls_endpoint`` is None. - ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials - for the grpc channel. It is ignored if ``channel`` is provided. - client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): - A callback to provide client certificate bytes and private key bytes, - both in PEM format. It is used to configure a mutual TLS channel. It is - ignored if ``channel`` or ``ssl_channel_credentials`` is provided. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - - Raises: - google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport - creation failed for any reason. - google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` - and ``credentials_file`` are passed. - """ - self._grpc_channel = None - self._ssl_channel_credentials = ssl_channel_credentials - self._stubs: Dict[str, Callable] = {} - self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None - - if api_mtls_endpoint: - warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) - if client_cert_source: - warnings.warn("client_cert_source is deprecated", DeprecationWarning) - - if channel: - # Ignore credentials if a channel was passed. - credentials = False - # If a channel was explicitly provided, set it. - self._grpc_channel = channel - self._ssl_channel_credentials = None - else: - if api_mtls_endpoint: - host = api_mtls_endpoint - - # Create SSL credentials with client_cert_source or application - # default SSL credentials. - if client_cert_source: - cert, key = client_cert_source() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - else: - self._ssl_channel_credentials = SslCredentials().ssl_credentials - - else: - if client_cert_source_for_mtls and not ssl_channel_credentials: - cert, key = client_cert_source_for_mtls() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - - # The base transport sets the host, credentials and scopes - super().__init__( - host=host, - credentials=credentials, - credentials_file=credentials_file, - scopes=scopes, - quota_project_id=quota_project_id, - client_info=client_info, - always_use_jwt_access=always_use_jwt_access, - api_audience=api_audience, - ) - - if not self._grpc_channel: - self._grpc_channel = type(self).create_channel( - self._host, - # use the credentials which are saved - credentials=self._credentials, - # Set ``credentials_file`` to ``None`` here as - # the credentials that we saved earlier should be used. - credentials_file=None, - scopes=self._scopes, - ssl_credentials=self._ssl_channel_credentials, - quota_project_id=quota_project_id, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - # Wrap messages. This must be done after self._grpc_channel exists - self._prep_wrapped_messages(client_info) - - @property - def grpc_channel(self) -> aio.Channel: - """Create the channel designed to connect to this service. - - This property caches on the instance; repeated calls return - the same channel. - """ - # Return the channel from cache. - return self._grpc_channel - - @property - def operations_client(self) -> operations_v1.OperationsAsyncClient: - """Create the client designed to process long-running operations. - - This property caches on the instance; repeated calls return the same - client. - """ - # Quick check: Only create a new client if we do not already have one. - if self._operations_client is None: - self._operations_client = operations_v1.OperationsAsyncClient( - self.grpc_channel - ) - - # Return the client from cache. - return self._operations_client - - @property - def list_hubs(self) -> Callable[ - [hub.ListHubsRequest], - Awaitable[hub.ListHubsResponse]]: - r"""Return a callable for the list hubs method over gRPC. - - Lists the Network Connectivity Center hubs associated - with a given project. - - Returns: - Callable[[~.ListHubsRequest], - Awaitable[~.ListHubsResponse]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_hubs' not in self._stubs: - self._stubs['list_hubs'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListHubs', - request_serializer=hub.ListHubsRequest.serialize, - response_deserializer=hub.ListHubsResponse.deserialize, - ) - return self._stubs['list_hubs'] - - @property - def get_hub(self) -> Callable[ - [hub.GetHubRequest], - Awaitable[hub.Hub]]: - r"""Return a callable for the get hub method over gRPC. - - Gets details about a Network Connectivity Center hub. - - Returns: - Callable[[~.GetHubRequest], - Awaitable[~.Hub]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_hub' not in self._stubs: - self._stubs['get_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetHub', - request_serializer=hub.GetHubRequest.serialize, - response_deserializer=hub.Hub.deserialize, - ) - return self._stubs['get_hub'] - - @property - def create_hub(self) -> Callable[ - [gcn_hub.CreateHubRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the create hub method over gRPC. - - Creates a new Network Connectivity Center hub in the - specified project. - - Returns: - Callable[[~.CreateHubRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_hub' not in self._stubs: - self._stubs['create_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/CreateHub', - request_serializer=gcn_hub.CreateHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_hub'] - - @property - def update_hub(self) -> Callable[ - [gcn_hub.UpdateHubRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the update hub method over gRPC. - - Updates the description and/or labels of a Network - Connectivity Center hub. - - Returns: - Callable[[~.UpdateHubRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'update_hub' not in self._stubs: - self._stubs['update_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/UpdateHub', - request_serializer=gcn_hub.UpdateHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['update_hub'] - - @property - def delete_hub(self) -> Callable[ - [hub.DeleteHubRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the delete hub method over gRPC. - - Deletes a Network Connectivity Center hub. - - Returns: - Callable[[~.DeleteHubRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_hub' not in self._stubs: - self._stubs['delete_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/DeleteHub', - request_serializer=hub.DeleteHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_hub'] - - @property - def list_hub_spokes(self) -> Callable[ - [hub.ListHubSpokesRequest], - Awaitable[hub.ListHubSpokesResponse]]: - r"""Return a callable for the list hub spokes method over gRPC. - - Lists the Network Connectivity Center spokes - associated with a specified hub and location. The list - includes both spokes that are attached to the hub and - spokes that have been proposed but not yet accepted. - - Returns: - Callable[[~.ListHubSpokesRequest], - Awaitable[~.ListHubSpokesResponse]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_hub_spokes' not in self._stubs: - self._stubs['list_hub_spokes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListHubSpokes', - request_serializer=hub.ListHubSpokesRequest.serialize, - response_deserializer=hub.ListHubSpokesResponse.deserialize, - ) - return self._stubs['list_hub_spokes'] - - @property - def list_spokes(self) -> Callable[ - [hub.ListSpokesRequest], - Awaitable[hub.ListSpokesResponse]]: - r"""Return a callable for the list spokes method over gRPC. - - Lists the Network Connectivity Center spokes in a - specified project and location. - - Returns: - Callable[[~.ListSpokesRequest], - Awaitable[~.ListSpokesResponse]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_spokes' not in self._stubs: - self._stubs['list_spokes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListSpokes', - request_serializer=hub.ListSpokesRequest.serialize, - response_deserializer=hub.ListSpokesResponse.deserialize, - ) - return self._stubs['list_spokes'] - - @property - def get_spoke(self) -> Callable[ - [hub.GetSpokeRequest], - Awaitable[hub.Spoke]]: - r"""Return a callable for the get spoke method over gRPC. - - Gets details about a Network Connectivity Center - spoke. - - Returns: - Callable[[~.GetSpokeRequest], - Awaitable[~.Spoke]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_spoke' not in self._stubs: - self._stubs['get_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetSpoke', - request_serializer=hub.GetSpokeRequest.serialize, - response_deserializer=hub.Spoke.deserialize, - ) - return self._stubs['get_spoke'] - - @property - def create_spoke(self) -> Callable[ - [hub.CreateSpokeRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the create spoke method over gRPC. - - Creates a Network Connectivity Center spoke. - - Returns: - Callable[[~.CreateSpokeRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_spoke' not in self._stubs: - self._stubs['create_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/CreateSpoke', - request_serializer=hub.CreateSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_spoke'] - - @property - def update_spoke(self) -> Callable[ - [hub.UpdateSpokeRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the update spoke method over gRPC. - - Updates the parameters of a Network Connectivity - Center spoke. - - Returns: - Callable[[~.UpdateSpokeRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'update_spoke' not in self._stubs: - self._stubs['update_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/UpdateSpoke', - request_serializer=hub.UpdateSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['update_spoke'] - - @property - def reject_hub_spoke(self) -> Callable[ - [hub.RejectHubSpokeRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the reject hub spoke method over gRPC. - - Rejects a Network Connectivity Center spoke from being attached - to a hub. If the spoke was previously in the ``ACTIVE`` state, - it transitions to the ``INACTIVE`` state and is no longer able - to connect to other spokes that are attached to the hub. - - Returns: - Callable[[~.RejectHubSpokeRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'reject_hub_spoke' not in self._stubs: - self._stubs['reject_hub_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/RejectHubSpoke', - request_serializer=hub.RejectHubSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['reject_hub_spoke'] - - @property - def accept_hub_spoke(self) -> Callable[ - [hub.AcceptHubSpokeRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the accept hub spoke method over gRPC. - - Accepts a proposal to attach a Network Connectivity - Center spoke to a hub. - - Returns: - Callable[[~.AcceptHubSpokeRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'accept_hub_spoke' not in self._stubs: - self._stubs['accept_hub_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/AcceptHubSpoke', - request_serializer=hub.AcceptHubSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['accept_hub_spoke'] - - @property - def delete_spoke(self) -> Callable[ - [hub.DeleteSpokeRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the delete spoke method over gRPC. - - Deletes a Network Connectivity Center spoke. - - Returns: - Callable[[~.DeleteSpokeRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_spoke' not in self._stubs: - self._stubs['delete_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/DeleteSpoke', - request_serializer=hub.DeleteSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_spoke'] - - @property - def get_route_table(self) -> Callable[ - [hub.GetRouteTableRequest], - Awaitable[hub.RouteTable]]: - r"""Return a callable for the get route table method over gRPC. - - Gets details about a Network Connectivity Center - route table. - - Returns: - Callable[[~.GetRouteTableRequest], - Awaitable[~.RouteTable]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_route_table' not in self._stubs: - self._stubs['get_route_table'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetRouteTable', - request_serializer=hub.GetRouteTableRequest.serialize, - response_deserializer=hub.RouteTable.deserialize, - ) - return self._stubs['get_route_table'] - - @property - def get_route(self) -> Callable[ - [hub.GetRouteRequest], - Awaitable[hub.Route]]: - r"""Return a callable for the get route method over gRPC. - - Gets details about the specified route. - - Returns: - Callable[[~.GetRouteRequest], - Awaitable[~.Route]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_route' not in self._stubs: - self._stubs['get_route'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetRoute', - request_serializer=hub.GetRouteRequest.serialize, - response_deserializer=hub.Route.deserialize, - ) - return self._stubs['get_route'] - - @property - def list_routes(self) -> Callable[ - [hub.ListRoutesRequest], - Awaitable[hub.ListRoutesResponse]]: - r"""Return a callable for the list routes method over gRPC. - - Lists routes in a given project. - - Returns: - Callable[[~.ListRoutesRequest], - Awaitable[~.ListRoutesResponse]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_routes' not in self._stubs: - self._stubs['list_routes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListRoutes', - request_serializer=hub.ListRoutesRequest.serialize, - response_deserializer=hub.ListRoutesResponse.deserialize, - ) - return self._stubs['list_routes'] - - @property - def list_route_tables(self) -> Callable[ - [hub.ListRouteTablesRequest], - Awaitable[hub.ListRouteTablesResponse]]: - r"""Return a callable for the list route tables method over gRPC. - - Lists route tables in a given project. - - Returns: - Callable[[~.ListRouteTablesRequest], - Awaitable[~.ListRouteTablesResponse]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_route_tables' not in self._stubs: - self._stubs['list_route_tables'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListRouteTables', - request_serializer=hub.ListRouteTablesRequest.serialize, - response_deserializer=hub.ListRouteTablesResponse.deserialize, - ) - return self._stubs['list_route_tables'] - - @property - def get_group(self) -> Callable[ - [hub.GetGroupRequest], - Awaitable[hub.Group]]: - r"""Return a callable for the get group method over gRPC. - - Gets details about a Network Connectivity Center - group. - - Returns: - Callable[[~.GetGroupRequest], - Awaitable[~.Group]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_group' not in self._stubs: - self._stubs['get_group'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/GetGroup', - request_serializer=hub.GetGroupRequest.serialize, - response_deserializer=hub.Group.deserialize, - ) - return self._stubs['get_group'] - - @property - def list_groups(self) -> Callable[ - [hub.ListGroupsRequest], - Awaitable[hub.ListGroupsResponse]]: - r"""Return a callable for the list groups method over gRPC. - - Lists groups in a given hub. - - Returns: - Callable[[~.ListGroupsRequest], - Awaitable[~.ListGroupsResponse]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_groups' not in self._stubs: - self._stubs['list_groups'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.HubService/ListGroups', - request_serializer=hub.ListGroupsRequest.serialize, - response_deserializer=hub.ListGroupsResponse.deserialize, - ) - return self._stubs['list_groups'] - - def close(self): - return self.grpc_channel.close() - - @property - def delete_operation( - self, - ) -> Callable[[operations_pb2.DeleteOperationRequest], None]: - r"""Return a callable for the delete_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "delete_operation" not in self._stubs: - self._stubs["delete_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/DeleteOperation", - request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString, - response_deserializer=None, - ) - return self._stubs["delete_operation"] - - @property - def cancel_operation( - self, - ) -> Callable[[operations_pb2.CancelOperationRequest], None]: - r"""Return a callable for the cancel_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "cancel_operation" not in self._stubs: - self._stubs["cancel_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/CancelOperation", - request_serializer=operations_pb2.CancelOperationRequest.SerializeToString, - response_deserializer=None, - ) - return self._stubs["cancel_operation"] - - @property - def get_operation( - self, - ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]: - r"""Return a callable for the get_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_operation" not in self._stubs: - self._stubs["get_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/GetOperation", - request_serializer=operations_pb2.GetOperationRequest.SerializeToString, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs["get_operation"] - - @property - def list_operations( - self, - ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]: - r"""Return a callable for the list_operations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "list_operations" not in self._stubs: - self._stubs["list_operations"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/ListOperations", - request_serializer=operations_pb2.ListOperationsRequest.SerializeToString, - response_deserializer=operations_pb2.ListOperationsResponse.FromString, - ) - return self._stubs["list_operations"] - - @property - def list_locations( - self, - ) -> Callable[[locations_pb2.ListLocationsRequest], locations_pb2.ListLocationsResponse]: - r"""Return a callable for the list locations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "list_locations" not in self._stubs: - self._stubs["list_locations"] = self.grpc_channel.unary_unary( - "/google.cloud.location.Locations/ListLocations", - request_serializer=locations_pb2.ListLocationsRequest.SerializeToString, - response_deserializer=locations_pb2.ListLocationsResponse.FromString, - ) - return self._stubs["list_locations"] - - @property - def get_location( - self, - ) -> Callable[[locations_pb2.GetLocationRequest], locations_pb2.Location]: - r"""Return a callable for the list locations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_location" not in self._stubs: - self._stubs["get_location"] = self.grpc_channel.unary_unary( - "/google.cloud.location.Locations/GetLocation", - request_serializer=locations_pb2.GetLocationRequest.SerializeToString, - response_deserializer=locations_pb2.Location.FromString, - ) - return self._stubs["get_location"] - - @property - def set_iam_policy( - self, - ) -> Callable[[iam_policy_pb2.SetIamPolicyRequest], policy_pb2.Policy]: - r"""Return a callable for the set iam policy method over gRPC. - Sets the IAM access control policy on the specified - function. Replaces any existing policy. - Returns: - Callable[[~.SetIamPolicyRequest], - ~.Policy]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "set_iam_policy" not in self._stubs: - self._stubs["set_iam_policy"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/SetIamPolicy", - request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString, - response_deserializer=policy_pb2.Policy.FromString, - ) - return self._stubs["set_iam_policy"] - - @property - def get_iam_policy( - self, - ) -> Callable[[iam_policy_pb2.GetIamPolicyRequest], policy_pb2.Policy]: - r"""Return a callable for the get iam policy method over gRPC. - Gets the IAM access control policy for a function. - Returns an empty policy if the function exists and does - not have a policy set. - Returns: - Callable[[~.GetIamPolicyRequest], - ~.Policy]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_iam_policy" not in self._stubs: - self._stubs["get_iam_policy"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/GetIamPolicy", - request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString, - response_deserializer=policy_pb2.Policy.FromString, - ) - return self._stubs["get_iam_policy"] - - @property - def test_iam_permissions( - self, - ) -> Callable[ - [iam_policy_pb2.TestIamPermissionsRequest], iam_policy_pb2.TestIamPermissionsResponse - ]: - r"""Return a callable for the test iam permissions method over gRPC. - Tests the specified permissions against the IAM access control - policy for a function. If the function does not exist, this will - return an empty set of permissions, not a NOT_FOUND error. - Returns: - Callable[[~.TestIamPermissionsRequest], - ~.TestIamPermissionsResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "test_iam_permissions" not in self._stubs: - self._stubs["test_iam_permissions"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/TestIamPermissions", - request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString, - response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString, - ) - return self._stubs["test_iam_permissions"] - - -__all__ = ( - 'HubServiceGrpcAsyncIOTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/__init__.py deleted file mode 100644 index b10ca2fb6543..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from .client import PolicyBasedRoutingServiceClient -from .async_client import PolicyBasedRoutingServiceAsyncClient - -__all__ = ( - 'PolicyBasedRoutingServiceClient', - 'PolicyBasedRoutingServiceAsyncClient', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/async_client.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/async_client.py deleted file mode 100644 index b54183f42246..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/async_client.py +++ /dev/null @@ -1,1297 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from collections import OrderedDict -import functools -import re -from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union - -from google.cloud.networkconnectivity_v1 import gapic_version as package_version - -from google.api_core.client_options import ClientOptions -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import retry as retries -from google.auth import credentials as ga_credentials # type: ignore -from google.oauth2 import service_account # type: ignore - -try: - OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] -except AttributeError: # pragma: NO COVER - OptionalRetry = Union[retries.Retry, object] # type: ignore - -from google.api_core import operation # type: ignore -from google.api_core import operation_async # type: ignore -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import pagers -from google.cloud.networkconnectivity_v1.types import common -from google.cloud.networkconnectivity_v1.types import policy_based_routing -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from google.protobuf import empty_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore -from .transports.base import PolicyBasedRoutingServiceTransport, DEFAULT_CLIENT_INFO -from .transports.grpc_asyncio import PolicyBasedRoutingServiceGrpcAsyncIOTransport -from .client import PolicyBasedRoutingServiceClient - - -class PolicyBasedRoutingServiceAsyncClient: - """Policy-Based Routing allows GCP customers to specify - flexibile routing policies for Layer 4 traffic traversing - through the connected service. - """ - - _client: PolicyBasedRoutingServiceClient - - DEFAULT_ENDPOINT = PolicyBasedRoutingServiceClient.DEFAULT_ENDPOINT - DEFAULT_MTLS_ENDPOINT = PolicyBasedRoutingServiceClient.DEFAULT_MTLS_ENDPOINT - - network_path = staticmethod(PolicyBasedRoutingServiceClient.network_path) - parse_network_path = staticmethod(PolicyBasedRoutingServiceClient.parse_network_path) - policy_based_route_path = staticmethod(PolicyBasedRoutingServiceClient.policy_based_route_path) - parse_policy_based_route_path = staticmethod(PolicyBasedRoutingServiceClient.parse_policy_based_route_path) - common_billing_account_path = staticmethod(PolicyBasedRoutingServiceClient.common_billing_account_path) - parse_common_billing_account_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_billing_account_path) - common_folder_path = staticmethod(PolicyBasedRoutingServiceClient.common_folder_path) - parse_common_folder_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_folder_path) - common_organization_path = staticmethod(PolicyBasedRoutingServiceClient.common_organization_path) - parse_common_organization_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_organization_path) - common_project_path = staticmethod(PolicyBasedRoutingServiceClient.common_project_path) - parse_common_project_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_project_path) - common_location_path = staticmethod(PolicyBasedRoutingServiceClient.common_location_path) - parse_common_location_path = staticmethod(PolicyBasedRoutingServiceClient.parse_common_location_path) - - @classmethod - def from_service_account_info(cls, info: dict, *args, **kwargs): - """Creates an instance of this client using the provided credentials - info. - - Args: - info (dict): The service account private key info. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - PolicyBasedRoutingServiceAsyncClient: The constructed client. - """ - return PolicyBasedRoutingServiceClient.from_service_account_info.__func__(PolicyBasedRoutingServiceAsyncClient, info, *args, **kwargs) # type: ignore - - @classmethod - def from_service_account_file(cls, filename: str, *args, **kwargs): - """Creates an instance of this client using the provided credentials - file. - - Args: - filename (str): The path to the service account private key json - file. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - PolicyBasedRoutingServiceAsyncClient: The constructed client. - """ - return PolicyBasedRoutingServiceClient.from_service_account_file.__func__(PolicyBasedRoutingServiceAsyncClient, filename, *args, **kwargs) # type: ignore - - from_service_account_json = from_service_account_file - - @classmethod - def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None): - """Return the API endpoint and client cert source for mutual TLS. - - The client cert source is determined in the following order: - (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the - client cert source is None. - (2) if `client_options.client_cert_source` is provided, use the provided one; if the - default client cert source exists, use the default one; otherwise the client cert - source is None. - - The API endpoint is determined in the following order: - (1) if `client_options.api_endpoint` if provided, use the provided one. - (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the - default mTLS endpoint; if the environment variable is "never", use the default API - endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise - use the default API endpoint. - - More details can be found at https://google.aip.dev/auth/4114. - - Args: - client_options (google.api_core.client_options.ClientOptions): Custom options for the - client. Only the `api_endpoint` and `client_cert_source` properties may be used - in this method. - - Returns: - Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the - client cert source to use. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If any errors happen. - """ - return PolicyBasedRoutingServiceClient.get_mtls_endpoint_and_cert_source(client_options) # type: ignore - - @property - def transport(self) -> PolicyBasedRoutingServiceTransport: - """Returns the transport used by the client instance. - - Returns: - PolicyBasedRoutingServiceTransport: The transport used by the client instance. - """ - return self._client.transport - - get_transport_class = functools.partial(type(PolicyBasedRoutingServiceClient).get_transport_class, type(PolicyBasedRoutingServiceClient)) - - def __init__(self, *, - credentials: Optional[ga_credentials.Credentials] = None, - transport: Union[str, PolicyBasedRoutingServiceTransport] = "grpc_asyncio", - client_options: Optional[ClientOptions] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - ) -> None: - """Instantiates the policy based routing service client. - - Args: - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - transport (Union[str, ~.PolicyBasedRoutingServiceTransport]): The - transport to use. If set to None, a transport is chosen - automatically. - client_options (ClientOptions): Custom options for the client. It - won't take effect if a ``transport`` instance is provided. - (1) The ``api_endpoint`` property can be used to override the - default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT - environment variable can also be used to override the endpoint: - "always" (always use the default mTLS endpoint), "never" (always - use the default regular endpoint) and "auto" (auto switch to the - default mTLS endpoint if client certificate is present, this is - the default value). However, the ``api_endpoint`` property takes - precedence if provided. - (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable - is "true", then the ``client_cert_source`` property can be used - to provide client certificate for mutual TLS transport. If - not provided, the default SSL client certificate will be used if - present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not - set, no client certificate will be used. - - Raises: - google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport - creation failed for any reason. - """ - self._client = PolicyBasedRoutingServiceClient( - credentials=credentials, - transport=transport, - client_options=client_options, - client_info=client_info, - - ) - - async def list_policy_based_routes(self, - request: Optional[Union[policy_based_routing.ListPolicyBasedRoutesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListPolicyBasedRoutesAsyncPager: - r"""Lists PolicyBasedRoutes in a given project and - location. - - .. 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 networkconnectivity_v1 - - async def sample_list_policy_based_routes(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListPolicyBasedRoutesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_policy_based_routes(request=request) - - # Handle the response - async for response in page_result: - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest, dict]]): - The request object. Request for [PolicyBasedRouting.ListPolicyBasedRoutes][] - method. - parent (:class:`str`): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers.ListPolicyBasedRoutesAsyncPager: - Response for - [PolicyBasedRouting.ListPolicyBasedRoutes][] method. - - 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([parent]) - 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.") - - request = policy_based_routing.ListPolicyBasedRoutesRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.list_policy_based_routes, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # This method is paged; wrap the response in a pager, which provides - # an `__aiter__` convenience method. - response = pagers.ListPolicyBasedRoutesAsyncPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def get_policy_based_route(self, - request: Optional[Union[policy_based_routing.GetPolicyBasedRouteRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_based_routing.PolicyBasedRoute: - r"""Gets details of a single PolicyBasedRoute. - - .. 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 networkconnectivity_v1 - - async def sample_get_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetPolicyBasedRouteRequest( - name="name_value", - ) - - # Make the request - response = await client.get_policy_based_route(request=request) - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetPolicyBasedRouteRequest, dict]]): - The request object. Request for [PolicyBasedRouting.GetPolicyBasedRoute][] - method. - name (:class:`str`): - Required. Name of the - PolicyBasedRoute resource to get. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.PolicyBasedRoute: - Policy Based Routes (PBR) are more - powerful routes that allows GCP - customers to route their L4 network - traffic based on not just destination - IP, but also source IP, protocol and - more. A PBR always take precedence when - it conflicts with other types of routes. - Next id: 22 - - """ - # 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([name]) - 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.") - - request = policy_based_routing.GetPolicyBasedRouteRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.get_policy_based_route, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def create_policy_based_route(self, - request: Optional[Union[policy_based_routing.CreatePolicyBasedRouteRequest, dict]] = None, - *, - parent: Optional[str] = None, - policy_based_route: Optional[policy_based_routing.PolicyBasedRoute] = None, - policy_based_route_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Creates a new PolicyBasedRoute in a given project and - location. - - .. 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 networkconnectivity_v1 - - async def sample_create_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() - - # Initialize request argument(s) - policy_based_route = networkconnectivity_v1.PolicyBasedRoute() - policy_based_route.next_hop_ilb_ip = "next_hop_ilb_ip_value" - policy_based_route.network = "network_value" - policy_based_route.filter.protocol_version = "IPV4" - - request = networkconnectivity_v1.CreatePolicyBasedRouteRequest( - parent="parent_value", - policy_based_route_id="policy_based_route_id_value", - policy_based_route=policy_based_route, - ) - - # Make the request - operation = client.create_policy_based_route(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.CreatePolicyBasedRouteRequest, dict]]): - The request object. Request for - [PolicyBasedRouting.CreatePolicyBasedRoute][] method. - parent (:class:`str`): - Required. The parent resource's name - of the PolicyBasedRoute. - - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - policy_based_route (:class:`google.cloud.networkconnectivity_v1.types.PolicyBasedRoute`): - Required. Initial values for a new - Policy Based Route. - - This corresponds to the ``policy_based_route`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - policy_based_route_id (:class:`str`): - Required. Unique id for the Policy - Based Route to create. - - This corresponds to the ``policy_based_route_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.PolicyBasedRoute` Policy Based Routes (PBR) are more powerful routes that allows GCP customers - to route their L4 network traffic based on not just - destination IP, but also source IP, protocol and - more. A PBR always take precedence when it conflicts - with other types of routes. Next id: 22 - - """ - # 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([parent, policy_based_route, policy_based_route_id]) - 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.") - - request = policy_based_routing.CreatePolicyBasedRouteRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if policy_based_route is not None: - request.policy_based_route = policy_based_route - if policy_based_route_id is not None: - request.policy_based_route_id = policy_based_route_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.create_policy_based_route, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - policy_based_routing.PolicyBasedRoute, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def delete_policy_based_route(self, - request: Optional[Union[policy_based_routing.DeletePolicyBasedRouteRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Deletes a single PolicyBasedRoute. - - .. 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 networkconnectivity_v1 - - async def sample_delete_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeletePolicyBasedRouteRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_policy_based_route(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.DeletePolicyBasedRouteRequest, dict]]): - The request object. Request for - [PolicyBasedRouting.DeletePolicyBasedRoute][] method. - name (:class:`str`): - Required. Name of the - PolicyBasedRoute resource to delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.") - - request = policy_based_routing.DeletePolicyBasedRouteRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.delete_policy_based_route, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def list_operations( - self, - request: Optional[operations_pb2.ListOperationsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operations_pb2.ListOperationsResponse: - r"""Lists operations that match the specified filter in the request. - - Args: - request (:class:`~.operations_pb2.ListOperationsRequest`): - The request object. Request message for - `ListOperations` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.operations_pb2.ListOperationsResponse: - Response message for ``ListOperations`` method. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.ListOperationsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.list_operations, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def get_operation( - self, - request: Optional[operations_pb2.GetOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operations_pb2.Operation: - r"""Gets the latest state of a long-running operation. - - Args: - request (:class:`~.operations_pb2.GetOperationRequest`): - The request object. Request message for - `GetOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.operations_pb2.Operation: - An ``Operation`` object. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.GetOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.get_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def delete_operation( - self, - request: Optional[operations_pb2.DeleteOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> None: - r"""Deletes a long-running operation. - - This method indicates that the client is no longer interested - in the operation result. It does not cancel the operation. - If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. - - Args: - request (:class:`~.operations_pb2.DeleteOperationRequest`): - The request object. Request message for - `DeleteOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - None - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.DeleteOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.delete_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - await rpc(request, retry=retry, timeout=timeout, metadata=metadata,) - - async def cancel_operation( - self, - request: Optional[operations_pb2.CancelOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> None: - r"""Starts asynchronous cancellation on a long-running operation. - - The server makes a best effort to cancel the operation, but success - is not guaranteed. If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. - - Args: - request (:class:`~.operations_pb2.CancelOperationRequest`): - The request object. Request message for - `CancelOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - None - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.CancelOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.cancel_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - await rpc(request, retry=retry, timeout=timeout, metadata=metadata,) - - async def set_iam_policy( - self, - request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_pb2.Policy: - r"""Sets the IAM access control policy on the specified function. - - Replaces any existing policy. - - Args: - request (:class:`~.iam_policy_pb2.SetIamPolicyRequest`): - The request object. Request message for `SetIamPolicy` - method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.policy_pb2.Policy: - Defines an Identity and Access Management (IAM) policy. - It is used to specify access control policies for Cloud - Platform resources. - A ``Policy`` is a collection of ``bindings``. A - ``binding`` binds one or more ``members`` to a single - ``role``. Members can be user accounts, service - accounts, Google groups, and domains (such as G Suite). - A ``role`` is a named list of permissions (defined by - IAM or configured by users). A ``binding`` can - optionally specify a ``condition``, which is a logic - expression that further constrains the role binding - based on attributes about the request and/or target - resource. - - **JSON Example** - - :: - - { - "bindings": [ - { - "role": "roles/resourcemanager.organizationAdmin", - "members": [ - "user:mike@example.com", - "group:admins@example.com", - "domain:google.com", - "serviceAccount:my-project-id@appspot.gserviceaccount.com" - ] - }, - { - "role": "roles/resourcemanager.organizationViewer", - "members": ["user:eve@example.com"], - "condition": { - "title": "expirable access", - "description": "Does not grant access after Sep 2020", - "expression": "request.time < - timestamp('2020-10-01T00:00:00.000Z')", - } - } - ] - } - - **YAML Example** - - :: - - bindings: - - members: - - user:mike@example.com - - group:admins@example.com - - domain:google.com - - serviceAccount:my-project-id@appspot.gserviceaccount.com - role: roles/resourcemanager.organizationAdmin - - members: - - user:eve@example.com - role: roles/resourcemanager.organizationViewer - condition: - title: expirable access - description: Does not grant access after Sep 2020 - expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - - For a description of IAM and its features, see the `IAM - developer's - guide `__. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.SetIamPolicyRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.set_iam_policy, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def get_iam_policy( - self, - request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_pb2.Policy: - r"""Gets the IAM access control policy for a function. - - Returns an empty policy if the function exists and does not have a - policy set. - - Args: - request (:class:`~.iam_policy_pb2.GetIamPolicyRequest`): - The request object. Request message for `GetIamPolicy` - method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.policy_pb2.Policy: - Defines an Identity and Access Management (IAM) policy. - It is used to specify access control policies for Cloud - Platform resources. - A ``Policy`` is a collection of ``bindings``. A - ``binding`` binds one or more ``members`` to a single - ``role``. Members can be user accounts, service - accounts, Google groups, and domains (such as G Suite). - A ``role`` is a named list of permissions (defined by - IAM or configured by users). A ``binding`` can - optionally specify a ``condition``, which is a logic - expression that further constrains the role binding - based on attributes about the request and/or target - resource. - - **JSON Example** - - :: - - { - "bindings": [ - { - "role": "roles/resourcemanager.organizationAdmin", - "members": [ - "user:mike@example.com", - "group:admins@example.com", - "domain:google.com", - "serviceAccount:my-project-id@appspot.gserviceaccount.com" - ] - }, - { - "role": "roles/resourcemanager.organizationViewer", - "members": ["user:eve@example.com"], - "condition": { - "title": "expirable access", - "description": "Does not grant access after Sep 2020", - "expression": "request.time < - timestamp('2020-10-01T00:00:00.000Z')", - } - } - ] - } - - **YAML Example** - - :: - - bindings: - - members: - - user:mike@example.com - - group:admins@example.com - - domain:google.com - - serviceAccount:my-project-id@appspot.gserviceaccount.com - role: roles/resourcemanager.organizationAdmin - - members: - - user:eve@example.com - role: roles/resourcemanager.organizationViewer - condition: - title: expirable access - description: Does not grant access after Sep 2020 - expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - - For a description of IAM and its features, see the `IAM - developer's - guide `__. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.GetIamPolicyRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.get_iam_policy, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def test_iam_permissions( - self, - request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> iam_policy_pb2.TestIamPermissionsResponse: - r"""Tests the specified IAM permissions against the IAM access control - policy for a function. - - If the function does not exist, this will return an empty set - of permissions, not a NOT_FOUND error. - - Args: - request (:class:`~.iam_policy_pb2.TestIamPermissionsRequest`): - The request object. Request message for - `TestIamPermissions` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.iam_policy_pb2.TestIamPermissionsResponse: - Response message for ``TestIamPermissions`` method. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.TestIamPermissionsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.test_iam_permissions, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def get_location( - self, - request: Optional[locations_pb2.GetLocationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> locations_pb2.Location: - r"""Gets information about a location. - - Args: - request (:class:`~.location_pb2.GetLocationRequest`): - The request object. Request message for - `GetLocation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.location_pb2.Location: - Location object. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = locations_pb2.GetLocationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.get_location, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def list_locations( - self, - request: Optional[locations_pb2.ListLocationsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> locations_pb2.ListLocationsResponse: - r"""Lists information about the supported locations for this service. - - Args: - request (:class:`~.location_pb2.ListLocationsRequest`): - The request object. Request message for - `ListLocations` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.location_pb2.ListLocationsResponse: - Response message for ``ListLocations`` method. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = locations_pb2.ListLocationsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._client._transport.list_locations, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = await rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - async def __aenter__(self) -> "PolicyBasedRoutingServiceAsyncClient": - return self - - async def __aexit__(self, exc_type, exc, tb): - await self.transport.close() - -DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) - - -__all__ = ( - "PolicyBasedRoutingServiceAsyncClient", -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/client.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/client.py deleted file mode 100644 index 3747078cbe5c..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/client.py +++ /dev/null @@ -1,1503 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from collections import OrderedDict -import os -import re -from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast - -from google.cloud.networkconnectivity_v1 import gapic_version as package_version - -from google.api_core import client_options as client_options_lib -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import retry as retries -from google.auth import credentials as ga_credentials # type: ignore -from google.auth.transport import mtls # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore -from google.auth.exceptions import MutualTLSChannelError # type: ignore -from google.oauth2 import service_account # type: ignore - -try: - OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] -except AttributeError: # pragma: NO COVER - OptionalRetry = Union[retries.Retry, object] # type: ignore - -from google.api_core import operation # type: ignore -from google.api_core import operation_async # type: ignore -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import pagers -from google.cloud.networkconnectivity_v1.types import common -from google.cloud.networkconnectivity_v1.types import policy_based_routing -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from google.protobuf import empty_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore -from .transports.base import PolicyBasedRoutingServiceTransport, DEFAULT_CLIENT_INFO -from .transports.grpc import PolicyBasedRoutingServiceGrpcTransport -from .transports.grpc_asyncio import PolicyBasedRoutingServiceGrpcAsyncIOTransport - - -class PolicyBasedRoutingServiceClientMeta(type): - """Metaclass for the PolicyBasedRoutingService client. - - This provides class-level methods for building and retrieving - support objects (e.g. transport) without polluting the client instance - objects. - """ - _transport_registry = OrderedDict() # type: Dict[str, Type[PolicyBasedRoutingServiceTransport]] - _transport_registry["grpc"] = PolicyBasedRoutingServiceGrpcTransport - _transport_registry["grpc_asyncio"] = PolicyBasedRoutingServiceGrpcAsyncIOTransport - - def get_transport_class(cls, - label: Optional[str] = None, - ) -> Type[PolicyBasedRoutingServiceTransport]: - """Returns an appropriate transport class. - - Args: - label: The name of the desired transport. If none is - provided, then the first transport in the registry is used. - - Returns: - The transport class to use. - """ - # If a specific transport is requested, return that one. - if label: - return cls._transport_registry[label] - - # No transport is requested; return the default (that is, the first one - # in the dictionary). - return next(iter(cls._transport_registry.values())) - - -class PolicyBasedRoutingServiceClient(metaclass=PolicyBasedRoutingServiceClientMeta): - """Policy-Based Routing allows GCP customers to specify - flexibile routing policies for Layer 4 traffic traversing - through the connected service. - """ - - @staticmethod - def _get_default_mtls_endpoint(api_endpoint): - """Converts api endpoint to mTLS endpoint. - - Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to - "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively. - Args: - api_endpoint (Optional[str]): the api endpoint to convert. - Returns: - str: converted mTLS api endpoint. - """ - if not api_endpoint: - return api_endpoint - - mtls_endpoint_re = re.compile( - r"(?P[^.]+)(?P\.mtls)?(?P\.sandbox)?(?P\.googleapis\.com)?" - ) - - m = mtls_endpoint_re.match(api_endpoint) - name, mtls, sandbox, googledomain = m.groups() - if mtls or not googledomain: - return api_endpoint - - if sandbox: - return api_endpoint.replace( - "sandbox.googleapis.com", "mtls.sandbox.googleapis.com" - ) - - return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com") - - DEFAULT_ENDPOINT = "networkconnectivity.googleapis.com" - DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__( # type: ignore - DEFAULT_ENDPOINT - ) - - @classmethod - def from_service_account_info(cls, info: dict, *args, **kwargs): - """Creates an instance of this client using the provided credentials - info. - - Args: - info (dict): The service account private key info. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - PolicyBasedRoutingServiceClient: The constructed client. - """ - credentials = service_account.Credentials.from_service_account_info(info) - kwargs["credentials"] = credentials - return cls(*args, **kwargs) - - @classmethod - def from_service_account_file(cls, filename: str, *args, **kwargs): - """Creates an instance of this client using the provided credentials - file. - - Args: - filename (str): The path to the service account private key json - file. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - PolicyBasedRoutingServiceClient: The constructed client. - """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs["credentials"] = credentials - return cls(*args, **kwargs) - - from_service_account_json = from_service_account_file - - @property - def transport(self) -> PolicyBasedRoutingServiceTransport: - """Returns the transport used by the client instance. - - Returns: - PolicyBasedRoutingServiceTransport: The transport used by the client - instance. - """ - return self._transport - - @staticmethod - def network_path(project: str,resource_id: str,) -> str: - """Returns a fully-qualified network string.""" - return "projects/{project}/global/networks/{resource_id}".format(project=project, resource_id=resource_id, ) - - @staticmethod - def parse_network_path(path: str) -> Dict[str,str]: - """Parses a network path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/global/networks/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def policy_based_route_path(project: str,policy_based_route: str,) -> str: - """Returns a fully-qualified policy_based_route string.""" - return "projects/{project}/locations/global/PolicyBasedRoutes/{policy_based_route}".format(project=project, policy_based_route=policy_based_route, ) - - @staticmethod - def parse_policy_based_route_path(path: str) -> Dict[str,str]: - """Parses a policy_based_route path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/global/PolicyBasedRoutes/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_billing_account_path(billing_account: str, ) -> str: - """Returns a fully-qualified billing_account string.""" - return "billingAccounts/{billing_account}".format(billing_account=billing_account, ) - - @staticmethod - def parse_common_billing_account_path(path: str) -> Dict[str,str]: - """Parse a billing_account path into its component segments.""" - m = re.match(r"^billingAccounts/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_folder_path(folder: str, ) -> str: - """Returns a fully-qualified folder string.""" - return "folders/{folder}".format(folder=folder, ) - - @staticmethod - def parse_common_folder_path(path: str) -> Dict[str,str]: - """Parse a folder path into its component segments.""" - m = re.match(r"^folders/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_organization_path(organization: str, ) -> str: - """Returns a fully-qualified organization string.""" - return "organizations/{organization}".format(organization=organization, ) - - @staticmethod - def parse_common_organization_path(path: str) -> Dict[str,str]: - """Parse a organization path into its component segments.""" - m = re.match(r"^organizations/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_project_path(project: str, ) -> str: - """Returns a fully-qualified project string.""" - return "projects/{project}".format(project=project, ) - - @staticmethod - def parse_common_project_path(path: str) -> Dict[str,str]: - """Parse a project path into its component segments.""" - m = re.match(r"^projects/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_location_path(project: str, location: str, ) -> str: - """Returns a fully-qualified location string.""" - return "projects/{project}/locations/{location}".format(project=project, location=location, ) - - @staticmethod - def parse_common_location_path(path: str) -> Dict[str,str]: - """Parse a location path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)$", path) - return m.groupdict() if m else {} - - @classmethod - def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None): - """Return the API endpoint and client cert source for mutual TLS. - - The client cert source is determined in the following order: - (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the - client cert source is None. - (2) if `client_options.client_cert_source` is provided, use the provided one; if the - default client cert source exists, use the default one; otherwise the client cert - source is None. - - The API endpoint is determined in the following order: - (1) if `client_options.api_endpoint` if provided, use the provided one. - (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the - default mTLS endpoint; if the environment variable is "never", use the default API - endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise - use the default API endpoint. - - More details can be found at https://google.aip.dev/auth/4114. - - Args: - client_options (google.api_core.client_options.ClientOptions): Custom options for the - client. Only the `api_endpoint` and `client_cert_source` properties may be used - in this method. - - Returns: - Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the - client cert source to use. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If any errors happen. - """ - if client_options is None: - client_options = client_options_lib.ClientOptions() - use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false") - use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto") - if use_client_cert not in ("true", "false"): - raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`") - if use_mtls_endpoint not in ("auto", "never", "always"): - raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`") - - # Figure out the client cert source to use. - client_cert_source = None - if use_client_cert == "true": - if client_options.client_cert_source: - client_cert_source = client_options.client_cert_source - elif mtls.has_default_client_cert_source(): - client_cert_source = mtls.default_client_cert_source() - - # Figure out which api endpoint to use. - if client_options.api_endpoint is not None: - api_endpoint = client_options.api_endpoint - elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source): - api_endpoint = cls.DEFAULT_MTLS_ENDPOINT - else: - api_endpoint = cls.DEFAULT_ENDPOINT - - return api_endpoint, client_cert_source - - def __init__(self, *, - credentials: Optional[ga_credentials.Credentials] = None, - transport: Optional[Union[str, PolicyBasedRoutingServiceTransport]] = None, - client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - ) -> None: - """Instantiates the policy based routing service client. - - Args: - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - transport (Union[str, PolicyBasedRoutingServiceTransport]): The - transport to use. If set to None, a transport is chosen - automatically. - client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the - client. It won't take effect if a ``transport`` instance is provided. - (1) The ``api_endpoint`` property can be used to override the - default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT - environment variable can also be used to override the endpoint: - "always" (always use the default mTLS endpoint), "never" (always - use the default regular endpoint) and "auto" (auto switch to the - default mTLS endpoint if client certificate is present, this is - the default value). However, the ``api_endpoint`` property takes - precedence if provided. - (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable - is "true", then the ``client_cert_source`` property can be used - to provide client certificate for mutual TLS transport. If - not provided, the default SSL client certificate will be used if - present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not - set, no client certificate will be used. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport - creation failed for any reason. - """ - if isinstance(client_options, dict): - client_options = client_options_lib.from_dict(client_options) - if client_options is None: - client_options = client_options_lib.ClientOptions() - client_options = cast(client_options_lib.ClientOptions, client_options) - - api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options) - - api_key_value = getattr(client_options, "api_key", None) - if api_key_value and credentials: - raise ValueError("client_options.api_key and credentials are mutually exclusive") - - # Save or instantiate the transport. - # Ordinarily, we provide the transport, but allowing a custom transport - # instance provides an extensibility point for unusual situations. - if isinstance(transport, PolicyBasedRoutingServiceTransport): - # transport is a PolicyBasedRoutingServiceTransport instance. - if credentials or client_options.credentials_file or api_key_value: - raise ValueError("When providing a transport instance, " - "provide its credentials directly.") - if client_options.scopes: - raise ValueError( - "When providing a transport instance, provide its scopes " - "directly." - ) - self._transport = transport - else: - import google.auth._default # type: ignore - - if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"): - credentials = google.auth._default.get_api_key_credentials(api_key_value) - - Transport = type(self).get_transport_class(transport) - self._transport = Transport( - credentials=credentials, - credentials_file=client_options.credentials_file, - host=api_endpoint, - scopes=client_options.scopes, - client_cert_source_for_mtls=client_cert_source_func, - quota_project_id=client_options.quota_project_id, - client_info=client_info, - always_use_jwt_access=True, - api_audience=client_options.api_audience, - ) - - def list_policy_based_routes(self, - request: Optional[Union[policy_based_routing.ListPolicyBasedRoutesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListPolicyBasedRoutesPager: - r"""Lists PolicyBasedRoutes in a given project and - location. - - .. 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 networkconnectivity_v1 - - def sample_list_policy_based_routes(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListPolicyBasedRoutesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_policy_based_routes(request=request) - - # Handle the response - for response in page_result: - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest, dict]): - The request object. Request for [PolicyBasedRouting.ListPolicyBasedRoutes][] - method. - parent (str): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers.ListPolicyBasedRoutesPager: - Response for - [PolicyBasedRouting.ListPolicyBasedRoutes][] method. - - 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([parent]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a policy_based_routing.ListPolicyBasedRoutesRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, policy_based_routing.ListPolicyBasedRoutesRequest): - request = policy_based_routing.ListPolicyBasedRoutesRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list_policy_based_routes] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # 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.ListPolicyBasedRoutesPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - def get_policy_based_route(self, - request: Optional[Union[policy_based_routing.GetPolicyBasedRouteRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_based_routing.PolicyBasedRoute: - r"""Gets details of a single PolicyBasedRoute. - - .. 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 networkconnectivity_v1 - - def sample_get_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetPolicyBasedRouteRequest( - name="name_value", - ) - - # Make the request - response = client.get_policy_based_route(request=request) - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.GetPolicyBasedRouteRequest, dict]): - The request object. Request for [PolicyBasedRouting.GetPolicyBasedRoute][] - method. - name (str): - Required. Name of the - PolicyBasedRoute resource to get. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1.types.PolicyBasedRoute: - Policy Based Routes (PBR) are more - powerful routes that allows GCP - customers to route their L4 network - traffic based on not just destination - IP, but also source IP, protocol and - more. A PBR always take precedence when - it conflicts with other types of routes. - Next id: 22 - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a policy_based_routing.GetPolicyBasedRouteRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, policy_based_routing.GetPolicyBasedRouteRequest): - request = policy_based_routing.GetPolicyBasedRouteRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_policy_based_route] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - def create_policy_based_route(self, - request: Optional[Union[policy_based_routing.CreatePolicyBasedRouteRequest, dict]] = None, - *, - parent: Optional[str] = None, - policy_based_route: Optional[policy_based_routing.PolicyBasedRoute] = None, - policy_based_route_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Creates a new PolicyBasedRoute in a given project and - location. - - .. 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 networkconnectivity_v1 - - def sample_create_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() - - # Initialize request argument(s) - policy_based_route = networkconnectivity_v1.PolicyBasedRoute() - policy_based_route.next_hop_ilb_ip = "next_hop_ilb_ip_value" - policy_based_route.network = "network_value" - policy_based_route.filter.protocol_version = "IPV4" - - request = networkconnectivity_v1.CreatePolicyBasedRouteRequest( - parent="parent_value", - policy_based_route_id="policy_based_route_id_value", - policy_based_route=policy_based_route, - ) - - # Make the request - operation = client.create_policy_based_route(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.CreatePolicyBasedRouteRequest, dict]): - The request object. Request for - [PolicyBasedRouting.CreatePolicyBasedRoute][] method. - parent (str): - Required. The parent resource's name - of the PolicyBasedRoute. - - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - policy_based_route (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute): - Required. Initial values for a new - Policy Based Route. - - This corresponds to the ``policy_based_route`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - policy_based_route_id (str): - Required. Unique id for the Policy - Based Route to create. - - This corresponds to the ``policy_based_route_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.PolicyBasedRoute` Policy Based Routes (PBR) are more powerful routes that allows GCP customers - to route their L4 network traffic based on not just - destination IP, but also source IP, protocol and - more. A PBR always take precedence when it conflicts - with other types of routes. Next id: 22 - - """ - # 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([parent, policy_based_route, policy_based_route_id]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a policy_based_routing.CreatePolicyBasedRouteRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, policy_based_routing.CreatePolicyBasedRouteRequest): - request = policy_based_routing.CreatePolicyBasedRouteRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if policy_based_route is not None: - request.policy_based_route = policy_based_route - if policy_based_route_id is not None: - request.policy_based_route_id = policy_based_route_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.create_policy_based_route] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - policy_based_routing.PolicyBasedRoute, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def delete_policy_based_route(self, - request: Optional[Union[policy_based_routing.DeletePolicyBasedRouteRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Deletes a single PolicyBasedRoute. - - .. 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 networkconnectivity_v1 - - def sample_delete_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeletePolicyBasedRouteRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_policy_based_route(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1.types.DeletePolicyBasedRouteRequest, dict]): - The request object. Request for - [PolicyBasedRouting.DeletePolicyBasedRoute][] method. - name (str): - Required. Name of the - PolicyBasedRoute resource to delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a policy_based_routing.DeletePolicyBasedRouteRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, policy_based_routing.DeletePolicyBasedRouteRequest): - request = policy_based_routing.DeletePolicyBasedRouteRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.delete_policy_based_route] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def __enter__(self) -> "PolicyBasedRoutingServiceClient": - return self - - def __exit__(self, type, value, traceback): - """Releases underlying transport's resources. - - .. warning:: - ONLY use as a context manager if the transport is NOT shared - with other clients! Exiting the with block will CLOSE the transport - and may cause errors in other clients! - """ - self.transport.close() - - def list_operations( - self, - request: Optional[operations_pb2.ListOperationsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operations_pb2.ListOperationsResponse: - r"""Lists operations that match the specified filter in the request. - - Args: - request (:class:`~.operations_pb2.ListOperationsRequest`): - The request object. Request message for - `ListOperations` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.operations_pb2.ListOperationsResponse: - Response message for ``ListOperations`` method. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.ListOperationsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.list_operations, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def get_operation( - self, - request: Optional[operations_pb2.GetOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operations_pb2.Operation: - r"""Gets the latest state of a long-running operation. - - Args: - request (:class:`~.operations_pb2.GetOperationRequest`): - The request object. Request message for - `GetOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.operations_pb2.Operation: - An ``Operation`` object. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.GetOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.get_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def delete_operation( - self, - request: Optional[operations_pb2.DeleteOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> None: - r"""Deletes a long-running operation. - - This method indicates that the client is no longer interested - in the operation result. It does not cancel the operation. - If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. - - Args: - request (:class:`~.operations_pb2.DeleteOperationRequest`): - The request object. Request message for - `DeleteOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - None - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.DeleteOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.delete_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - rpc(request, retry=retry, timeout=timeout, metadata=metadata,) - - def cancel_operation( - self, - request: Optional[operations_pb2.CancelOperationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> None: - r"""Starts asynchronous cancellation on a long-running operation. - - The server makes a best effort to cancel the operation, but success - is not guaranteed. If the server doesn't support this method, it returns - `google.rpc.Code.UNIMPLEMENTED`. - - Args: - request (:class:`~.operations_pb2.CancelOperationRequest`): - The request object. Request message for - `CancelOperation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - None - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = operations_pb2.CancelOperationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.cancel_operation, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - rpc(request, retry=retry, timeout=timeout, metadata=metadata,) - - def set_iam_policy( - self, - request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_pb2.Policy: - r"""Sets the IAM access control policy on the specified function. - - Replaces any existing policy. - - Args: - request (:class:`~.iam_policy_pb2.SetIamPolicyRequest`): - The request object. Request message for `SetIamPolicy` - method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.policy_pb2.Policy: - Defines an Identity and Access Management (IAM) policy. - It is used to specify access control policies for Cloud - Platform resources. - A ``Policy`` is a collection of ``bindings``. A - ``binding`` binds one or more ``members`` to a single - ``role``. Members can be user accounts, service - accounts, Google groups, and domains (such as G Suite). - A ``role`` is a named list of permissions (defined by - IAM or configured by users). A ``binding`` can - optionally specify a ``condition``, which is a logic - expression that further constrains the role binding - based on attributes about the request and/or target - resource. - - **JSON Example** - - :: - - { - "bindings": [ - { - "role": "roles/resourcemanager.organizationAdmin", - "members": [ - "user:mike@example.com", - "group:admins@example.com", - "domain:google.com", - "serviceAccount:my-project-id@appspot.gserviceaccount.com" - ] - }, - { - "role": "roles/resourcemanager.organizationViewer", - "members": ["user:eve@example.com"], - "condition": { - "title": "expirable access", - "description": "Does not grant access after Sep 2020", - "expression": "request.time < - timestamp('2020-10-01T00:00:00.000Z')", - } - } - ] - } - - **YAML Example** - - :: - - bindings: - - members: - - user:mike@example.com - - group:admins@example.com - - domain:google.com - - serviceAccount:my-project-id@appspot.gserviceaccount.com - role: roles/resourcemanager.organizationAdmin - - members: - - user:eve@example.com - role: roles/resourcemanager.organizationViewer - condition: - title: expirable access - description: Does not grant access after Sep 2020 - expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - - For a description of IAM and its features, see the `IAM - developer's - guide `__. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.SetIamPolicyRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.set_iam_policy, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def get_iam_policy( - self, - request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> policy_pb2.Policy: - r"""Gets the IAM access control policy for a function. - - Returns an empty policy if the function exists and does not have a - policy set. - - Args: - request (:class:`~.iam_policy_pb2.GetIamPolicyRequest`): - The request object. Request message for `GetIamPolicy` - method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.policy_pb2.Policy: - Defines an Identity and Access Management (IAM) policy. - It is used to specify access control policies for Cloud - Platform resources. - A ``Policy`` is a collection of ``bindings``. A - ``binding`` binds one or more ``members`` to a single - ``role``. Members can be user accounts, service - accounts, Google groups, and domains (such as G Suite). - A ``role`` is a named list of permissions (defined by - IAM or configured by users). A ``binding`` can - optionally specify a ``condition``, which is a logic - expression that further constrains the role binding - based on attributes about the request and/or target - resource. - - **JSON Example** - - :: - - { - "bindings": [ - { - "role": "roles/resourcemanager.organizationAdmin", - "members": [ - "user:mike@example.com", - "group:admins@example.com", - "domain:google.com", - "serviceAccount:my-project-id@appspot.gserviceaccount.com" - ] - }, - { - "role": "roles/resourcemanager.organizationViewer", - "members": ["user:eve@example.com"], - "condition": { - "title": "expirable access", - "description": "Does not grant access after Sep 2020", - "expression": "request.time < - timestamp('2020-10-01T00:00:00.000Z')", - } - } - ] - } - - **YAML Example** - - :: - - bindings: - - members: - - user:mike@example.com - - group:admins@example.com - - domain:google.com - - serviceAccount:my-project-id@appspot.gserviceaccount.com - role: roles/resourcemanager.organizationAdmin - - members: - - user:eve@example.com - role: roles/resourcemanager.organizationViewer - condition: - title: expirable access - description: Does not grant access after Sep 2020 - expression: request.time < timestamp('2020-10-01T00:00:00.000Z') - - For a description of IAM and its features, see the `IAM - developer's - guide `__. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.GetIamPolicyRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.get_iam_policy, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def test_iam_permissions( - self, - request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> iam_policy_pb2.TestIamPermissionsResponse: - r"""Tests the specified IAM permissions against the IAM access control - policy for a function. - - If the function does not exist, this will return an empty set - of permissions, not a NOT_FOUND error. - - Args: - request (:class:`~.iam_policy_pb2.TestIamPermissionsRequest`): - The request object. Request message for - `TestIamPermissions` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.iam_policy_pb2.TestIamPermissionsResponse: - Response message for ``TestIamPermissions`` method. - """ - # Create or coerce a protobuf request object. - - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = iam_policy_pb2.TestIamPermissionsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.test_iam_permissions, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("resource", request.resource),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def get_location( - self, - request: Optional[locations_pb2.GetLocationRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> locations_pb2.Location: - r"""Gets information about a location. - - Args: - request (:class:`~.location_pb2.GetLocationRequest`): - The request object. Request message for - `GetLocation` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.location_pb2.Location: - Location object. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = locations_pb2.GetLocationRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.get_location, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - def list_locations( - self, - request: Optional[locations_pb2.ListLocationsRequest] = None, - *, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> locations_pb2.ListLocationsResponse: - r"""Lists information about the supported locations for this service. - - Args: - request (:class:`~.location_pb2.ListLocationsRequest`): - The request object. Request message for - `ListLocations` method. - 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, str]]): Strings which should be - sent along with the request as metadata. - Returns: - ~.location_pb2.ListLocationsResponse: - Response message for ``ListLocations`` method. - """ - # Create or coerce a protobuf request object. - # The request isn't a proto-plus wrapped type, - # so it must be constructed via keyword expansion. - if isinstance(request, dict): - request = locations_pb2.ListLocationsRequest(**request) - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method.wrap_method( - self._transport.list_locations, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata( - (("name", request.name),)), - ) - - # Send the request. - response = rpc( - request, retry=retry, timeout=timeout, metadata=metadata,) - - # Done; return the response. - return response - - -DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) - - -__all__ = ( - "PolicyBasedRoutingServiceClient", -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/pagers.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/pagers.py deleted file mode 100644 index 93c9dc64f572..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/pagers.py +++ /dev/null @@ -1,139 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator - -from google.cloud.networkconnectivity_v1.types import policy_based_routing - - -class ListPolicyBasedRoutesPager: - """A pager for iterating through ``list_policy_based_routes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse` object, and - provides an ``__iter__`` method to iterate through its - ``policy_based_routes`` field. - - If there are more pages, the ``__iter__`` method will make additional - ``ListPolicyBasedRoutes`` requests and continue to iterate - through the ``policy_based_routes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse` - 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[..., policy_based_routing.ListPolicyBasedRoutesResponse], - request: policy_based_routing.ListPolicyBasedRoutesRequest, - response: policy_based_routing.ListPolicyBasedRoutesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiate the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = policy_based_routing.ListPolicyBasedRoutesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - def pages(self) -> Iterator[policy_based_routing.ListPolicyBasedRoutesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = self._method(self._request, metadata=self._metadata) - yield self._response - - def __iter__(self) -> Iterator[policy_based_routing.PolicyBasedRoute]: - for page in self.pages: - yield from page.policy_based_routes - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListPolicyBasedRoutesAsyncPager: - """A pager for iterating through ``list_policy_based_routes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse` object, and - provides an ``__aiter__`` method to iterate through its - ``policy_based_routes`` field. - - If there are more pages, the ``__aiter__`` method will make additional - ``ListPolicyBasedRoutes`` requests and continue to iterate - through the ``policy_based_routes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse` - 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[..., Awaitable[policy_based_routing.ListPolicyBasedRoutesResponse]], - request: policy_based_routing.ListPolicyBasedRoutesRequest, - response: policy_based_routing.ListPolicyBasedRoutesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiates the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = policy_based_routing.ListPolicyBasedRoutesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - async def pages(self) -> AsyncIterator[policy_based_routing.ListPolicyBasedRoutesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = await self._method(self._request, metadata=self._metadata) - yield self._response - def __aiter__(self) -> AsyncIterator[policy_based_routing.PolicyBasedRoute]: - async def async_generator(): - async for page in self.pages: - for response in page.policy_based_routes: - yield response - - return async_generator() - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/__init__.py deleted file mode 100644 index 2f2f03b199e4..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from collections import OrderedDict -from typing import Dict, Type - -from .base import PolicyBasedRoutingServiceTransport -from .grpc import PolicyBasedRoutingServiceGrpcTransport -from .grpc_asyncio import PolicyBasedRoutingServiceGrpcAsyncIOTransport - - -# Compile a registry of transports. -_transport_registry = OrderedDict() # type: Dict[str, Type[PolicyBasedRoutingServiceTransport]] -_transport_registry['grpc'] = PolicyBasedRoutingServiceGrpcTransport -_transport_registry['grpc_asyncio'] = PolicyBasedRoutingServiceGrpcAsyncIOTransport - -__all__ = ( - 'PolicyBasedRoutingServiceTransport', - 'PolicyBasedRoutingServiceGrpcTransport', - 'PolicyBasedRoutingServiceGrpcAsyncIOTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/base.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/base.py deleted file mode 100644 index e3b9e315d89b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/base.py +++ /dev/null @@ -1,282 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import abc -from typing import Awaitable, Callable, Dict, Optional, Sequence, Union - -from google.cloud.networkconnectivity_v1 import gapic_version as package_version - -import google.auth # type: ignore -import google.api_core -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import retry as retries -from google.api_core import operations_v1 -from google.auth import credentials as ga_credentials # type: ignore -from google.oauth2 import service_account # type: ignore - -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.types import policy_based_routing -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore - -DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) - - -class PolicyBasedRoutingServiceTransport(abc.ABC): - """Abstract transport class for PolicyBasedRoutingService.""" - - AUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - ) - - DEFAULT_HOST: str = 'networkconnectivity.googleapis.com' - def __init__( - self, *, - host: str = DEFAULT_HOST, - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - quota_project_id: Optional[str] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - always_use_jwt_access: Optional[bool] = False, - api_audience: Optional[str] = None, - **kwargs, - ) -> None: - """Instantiate the transport. - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is mutually exclusive with credentials. - scopes (Optional[Sequence[str]]): A list of scopes. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - """ - - scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} - - # Save the scopes. - self._scopes = scopes - - # If no credentials are provided, then determine the appropriate - # defaults. - if credentials and credentials_file: - raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive") - - if credentials_file is not None: - credentials, _ = google.auth.load_credentials_from_file( - credentials_file, - **scopes_kwargs, - quota_project_id=quota_project_id - ) - elif credentials is None: - credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id) - # Don't apply audience if the credentials file passed from user. - if hasattr(credentials, "with_gdch_audience"): - credentials = credentials.with_gdch_audience(api_audience if api_audience else host) - - # If the credentials are service account credentials, then always try to use self signed JWT. - if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"): - credentials = credentials.with_always_use_jwt_access(True) - - # Save the credentials. - self._credentials = credentials - - # Save the hostname. Default to port 443 (HTTPS) if none is specified. - if ':' not in host: - host += ':443' - self._host = host - - def _prep_wrapped_messages(self, client_info): - # Precompute the wrapped methods. - self._wrapped_methods = { - self.list_policy_based_routes: gapic_v1.method.wrap_method( - self.list_policy_based_routes, - default_timeout=None, - client_info=client_info, - ), - self.get_policy_based_route: gapic_v1.method.wrap_method( - self.get_policy_based_route, - default_timeout=None, - client_info=client_info, - ), - self.create_policy_based_route: gapic_v1.method.wrap_method( - self.create_policy_based_route, - default_timeout=60.0, - client_info=client_info, - ), - self.delete_policy_based_route: gapic_v1.method.wrap_method( - self.delete_policy_based_route, - default_timeout=60.0, - client_info=client_info, - ), - } - - def close(self): - """Closes resources associated with the transport. - - .. warning:: - Only call this method if the transport is NOT shared - with other clients - this may cause errors in other clients! - """ - raise NotImplementedError() - - @property - def operations_client(self): - """Return the client designed to process long-running operations.""" - raise NotImplementedError() - - @property - def list_policy_based_routes(self) -> Callable[ - [policy_based_routing.ListPolicyBasedRoutesRequest], - Union[ - policy_based_routing.ListPolicyBasedRoutesResponse, - Awaitable[policy_based_routing.ListPolicyBasedRoutesResponse] - ]]: - raise NotImplementedError() - - @property - def get_policy_based_route(self) -> Callable[ - [policy_based_routing.GetPolicyBasedRouteRequest], - Union[ - policy_based_routing.PolicyBasedRoute, - Awaitable[policy_based_routing.PolicyBasedRoute] - ]]: - raise NotImplementedError() - - @property - def create_policy_based_route(self) -> Callable[ - [policy_based_routing.CreatePolicyBasedRouteRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def delete_policy_based_route(self) -> Callable[ - [policy_based_routing.DeletePolicyBasedRouteRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def list_operations( - self, - ) -> Callable[ - [operations_pb2.ListOperationsRequest], - Union[operations_pb2.ListOperationsResponse, Awaitable[operations_pb2.ListOperationsResponse]], - ]: - raise NotImplementedError() - - @property - def get_operation( - self, - ) -> Callable[ - [operations_pb2.GetOperationRequest], - Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]], - ]: - raise NotImplementedError() - - @property - def cancel_operation( - self, - ) -> Callable[ - [operations_pb2.CancelOperationRequest], - None, - ]: - raise NotImplementedError() - - @property - def delete_operation( - self, - ) -> Callable[ - [operations_pb2.DeleteOperationRequest], - None, - ]: - raise NotImplementedError() - - @property - def set_iam_policy( - self, - ) -> Callable[ - [iam_policy_pb2.SetIamPolicyRequest], - Union[policy_pb2.Policy, Awaitable[policy_pb2.Policy]], - ]: - raise NotImplementedError() - - @property - def get_iam_policy( - self, - ) -> Callable[ - [iam_policy_pb2.GetIamPolicyRequest], - Union[policy_pb2.Policy, Awaitable[policy_pb2.Policy]], - ]: - raise NotImplementedError() - - @property - def test_iam_permissions( - self, - ) -> Callable[ - [iam_policy_pb2.TestIamPermissionsRequest], - Union[ - iam_policy_pb2.TestIamPermissionsResponse, - Awaitable[iam_policy_pb2.TestIamPermissionsResponse], - ], - ]: - raise NotImplementedError() - - @property - def get_location(self, - ) -> Callable[ - [locations_pb2.GetLocationRequest], - Union[locations_pb2.Location, Awaitable[locations_pb2.Location]], - ]: - raise NotImplementedError() - - @property - def list_locations(self, - ) -> Callable[ - [locations_pb2.ListLocationsRequest], - Union[locations_pb2.ListLocationsResponse, Awaitable[locations_pb2.ListLocationsResponse]], - ]: - raise NotImplementedError() - - @property - def kind(self) -> str: - raise NotImplementedError() - - -__all__ = ( - 'PolicyBasedRoutingServiceTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc.py deleted file mode 100644 index 314004cd619b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc.py +++ /dev/null @@ -1,555 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import warnings -from typing import Callable, Dict, Optional, Sequence, Tuple, Union - -from google.api_core import grpc_helpers -from google.api_core import operations_v1 -from google.api_core import gapic_v1 -import google.auth # type: ignore -from google.auth import credentials as ga_credentials # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore - -import grpc # type: ignore - -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.types import policy_based_routing -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from .base import PolicyBasedRoutingServiceTransport, DEFAULT_CLIENT_INFO - - -class PolicyBasedRoutingServiceGrpcTransport(PolicyBasedRoutingServiceTransport): - """gRPC backend transport for PolicyBasedRoutingService. - - Policy-Based Routing allows GCP customers to specify - flexibile routing policies for Layer 4 traffic traversing - through the connected service. - - This class defines the same methods as the primary client, so the - primary client can load the underlying transport implementation - and call it. - - It sends protocol buffers over the wire using gRPC (which is built on - top of HTTP/2); the ``grpcio`` package must be installed. - """ - _stubs: Dict[str, Callable] - - def __init__(self, *, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - channel: Optional[grpc.Channel] = None, - api_mtls_endpoint: Optional[str] = None, - client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, - client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - quota_project_id: Optional[str] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - always_use_jwt_access: Optional[bool] = False, - api_audience: Optional[str] = None, - ) -> None: - """Instantiate the transport. - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - This argument is ignored if ``channel`` is provided. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional(Sequence[str])): A list of scopes. This argument is - ignored if ``channel`` is provided. - channel (Optional[grpc.Channel]): A ``Channel`` instance through - which to make calls. - api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. - If provided, it overrides the ``host`` argument and tries to create - a mutual TLS channel with client SSL credentials from - ``client_cert_source`` or application default SSL credentials. - client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): - Deprecated. A callback to provide client SSL certificate bytes and - private key bytes, both in PEM format. It is ignored if - ``api_mtls_endpoint`` is None. - ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials - for the grpc channel. It is ignored if ``channel`` is provided. - client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): - A callback to provide client certificate bytes and private key bytes, - both in PEM format. It is used to configure a mutual TLS channel. It is - ignored if ``channel`` or ``ssl_channel_credentials`` is provided. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport - creation failed for any reason. - google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` - and ``credentials_file`` are passed. - """ - self._grpc_channel = None - self._ssl_channel_credentials = ssl_channel_credentials - self._stubs: Dict[str, Callable] = {} - self._operations_client: Optional[operations_v1.OperationsClient] = None - - if api_mtls_endpoint: - warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) - if client_cert_source: - warnings.warn("client_cert_source is deprecated", DeprecationWarning) - - if channel: - # Ignore credentials if a channel was passed. - credentials = False - # If a channel was explicitly provided, set it. - self._grpc_channel = channel - self._ssl_channel_credentials = None - - else: - if api_mtls_endpoint: - host = api_mtls_endpoint - - # Create SSL credentials with client_cert_source or application - # default SSL credentials. - if client_cert_source: - cert, key = client_cert_source() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - else: - self._ssl_channel_credentials = SslCredentials().ssl_credentials - - else: - if client_cert_source_for_mtls and not ssl_channel_credentials: - cert, key = client_cert_source_for_mtls() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - - # The base transport sets the host, credentials and scopes - super().__init__( - host=host, - credentials=credentials, - credentials_file=credentials_file, - scopes=scopes, - quota_project_id=quota_project_id, - client_info=client_info, - always_use_jwt_access=always_use_jwt_access, - api_audience=api_audience, - ) - - if not self._grpc_channel: - self._grpc_channel = type(self).create_channel( - self._host, - # use the credentials which are saved - credentials=self._credentials, - # Set ``credentials_file`` to ``None`` here as - # the credentials that we saved earlier should be used. - credentials_file=None, - scopes=self._scopes, - ssl_credentials=self._ssl_channel_credentials, - quota_project_id=quota_project_id, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - # Wrap messages. This must be done after self._grpc_channel exists - self._prep_wrapped_messages(client_info) - - @classmethod - def create_channel(cls, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - quota_project_id: Optional[str] = None, - **kwargs) -> grpc.Channel: - """Create and return a gRPC channel object. - Args: - host (Optional[str]): The host for the channel to use. - credentials (Optional[~.Credentials]): The - authorization credentials to attach to requests. These - credentials identify this application to the service. If - none are specified, the client will attempt to ascertain - the credentials from the environment. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is mutually exclusive with credentials. - scopes (Optional[Sequence[str]]): A optional list of scopes needed for this - service. These are only used when credentials are not specified and - are passed to :func:`google.auth.default`. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - kwargs (Optional[dict]): Keyword arguments, which are passed to the - channel creation. - Returns: - grpc.Channel: A gRPC channel object. - - Raises: - google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` - and ``credentials_file`` are passed. - """ - - return grpc_helpers.create_channel( - host, - credentials=credentials, - credentials_file=credentials_file, - quota_project_id=quota_project_id, - default_scopes=cls.AUTH_SCOPES, - scopes=scopes, - default_host=cls.DEFAULT_HOST, - **kwargs - ) - - @property - def grpc_channel(self) -> grpc.Channel: - """Return the channel designed to connect to this service. - """ - return self._grpc_channel - - @property - def operations_client(self) -> operations_v1.OperationsClient: - """Create the client designed to process long-running operations. - - This property caches on the instance; repeated calls return the same - client. - """ - # Quick check: Only create a new client if we do not already have one. - if self._operations_client is None: - self._operations_client = operations_v1.OperationsClient( - self.grpc_channel - ) - - # Return the client from cache. - return self._operations_client - - @property - def list_policy_based_routes(self) -> Callable[ - [policy_based_routing.ListPolicyBasedRoutesRequest], - policy_based_routing.ListPolicyBasedRoutesResponse]: - r"""Return a callable for the list policy based routes method over gRPC. - - Lists PolicyBasedRoutes in a given project and - location. - - Returns: - Callable[[~.ListPolicyBasedRoutesRequest], - ~.ListPolicyBasedRoutesResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_policy_based_routes' not in self._stubs: - self._stubs['list_policy_based_routes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/ListPolicyBasedRoutes', - request_serializer=policy_based_routing.ListPolicyBasedRoutesRequest.serialize, - response_deserializer=policy_based_routing.ListPolicyBasedRoutesResponse.deserialize, - ) - return self._stubs['list_policy_based_routes'] - - @property - def get_policy_based_route(self) -> Callable[ - [policy_based_routing.GetPolicyBasedRouteRequest], - policy_based_routing.PolicyBasedRoute]: - r"""Return a callable for the get policy based route method over gRPC. - - Gets details of a single PolicyBasedRoute. - - Returns: - Callable[[~.GetPolicyBasedRouteRequest], - ~.PolicyBasedRoute]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_policy_based_route' not in self._stubs: - self._stubs['get_policy_based_route'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/GetPolicyBasedRoute', - request_serializer=policy_based_routing.GetPolicyBasedRouteRequest.serialize, - response_deserializer=policy_based_routing.PolicyBasedRoute.deserialize, - ) - return self._stubs['get_policy_based_route'] - - @property - def create_policy_based_route(self) -> Callable[ - [policy_based_routing.CreatePolicyBasedRouteRequest], - operations_pb2.Operation]: - r"""Return a callable for the create policy based route method over gRPC. - - Creates a new PolicyBasedRoute in a given project and - location. - - Returns: - Callable[[~.CreatePolicyBasedRouteRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_policy_based_route' not in self._stubs: - self._stubs['create_policy_based_route'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/CreatePolicyBasedRoute', - request_serializer=policy_based_routing.CreatePolicyBasedRouteRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_policy_based_route'] - - @property - def delete_policy_based_route(self) -> Callable[ - [policy_based_routing.DeletePolicyBasedRouteRequest], - operations_pb2.Operation]: - r"""Return a callable for the delete policy based route method over gRPC. - - Deletes a single PolicyBasedRoute. - - Returns: - Callable[[~.DeletePolicyBasedRouteRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_policy_based_route' not in self._stubs: - self._stubs['delete_policy_based_route'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/DeletePolicyBasedRoute', - request_serializer=policy_based_routing.DeletePolicyBasedRouteRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_policy_based_route'] - - def close(self): - self.grpc_channel.close() - - @property - def delete_operation( - self, - ) -> Callable[[operations_pb2.DeleteOperationRequest], None]: - r"""Return a callable for the delete_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "delete_operation" not in self._stubs: - self._stubs["delete_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/DeleteOperation", - request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString, - response_deserializer=None, - ) - return self._stubs["delete_operation"] - - @property - def cancel_operation( - self, - ) -> Callable[[operations_pb2.CancelOperationRequest], None]: - r"""Return a callable for the cancel_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "cancel_operation" not in self._stubs: - self._stubs["cancel_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/CancelOperation", - request_serializer=operations_pb2.CancelOperationRequest.SerializeToString, - response_deserializer=None, - ) - return self._stubs["cancel_operation"] - - @property - def get_operation( - self, - ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]: - r"""Return a callable for the get_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_operation" not in self._stubs: - self._stubs["get_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/GetOperation", - request_serializer=operations_pb2.GetOperationRequest.SerializeToString, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs["get_operation"] - - @property - def list_operations( - self, - ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]: - r"""Return a callable for the list_operations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "list_operations" not in self._stubs: - self._stubs["list_operations"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/ListOperations", - request_serializer=operations_pb2.ListOperationsRequest.SerializeToString, - response_deserializer=operations_pb2.ListOperationsResponse.FromString, - ) - return self._stubs["list_operations"] - - @property - def list_locations( - self, - ) -> Callable[[locations_pb2.ListLocationsRequest], locations_pb2.ListLocationsResponse]: - r"""Return a callable for the list locations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "list_locations" not in self._stubs: - self._stubs["list_locations"] = self.grpc_channel.unary_unary( - "/google.cloud.location.Locations/ListLocations", - request_serializer=locations_pb2.ListLocationsRequest.SerializeToString, - response_deserializer=locations_pb2.ListLocationsResponse.FromString, - ) - return self._stubs["list_locations"] - - @property - def get_location( - self, - ) -> Callable[[locations_pb2.GetLocationRequest], locations_pb2.Location]: - r"""Return a callable for the list locations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_location" not in self._stubs: - self._stubs["get_location"] = self.grpc_channel.unary_unary( - "/google.cloud.location.Locations/GetLocation", - request_serializer=locations_pb2.GetLocationRequest.SerializeToString, - response_deserializer=locations_pb2.Location.FromString, - ) - return self._stubs["get_location"] - - @property - def set_iam_policy( - self, - ) -> Callable[[iam_policy_pb2.SetIamPolicyRequest], policy_pb2.Policy]: - r"""Return a callable for the set iam policy method over gRPC. - Sets the IAM access control policy on the specified - function. Replaces any existing policy. - Returns: - Callable[[~.SetIamPolicyRequest], - ~.Policy]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "set_iam_policy" not in self._stubs: - self._stubs["set_iam_policy"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/SetIamPolicy", - request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString, - response_deserializer=policy_pb2.Policy.FromString, - ) - return self._stubs["set_iam_policy"] - - @property - def get_iam_policy( - self, - ) -> Callable[[iam_policy_pb2.GetIamPolicyRequest], policy_pb2.Policy]: - r"""Return a callable for the get iam policy method over gRPC. - Gets the IAM access control policy for a function. - Returns an empty policy if the function exists and does - not have a policy set. - Returns: - Callable[[~.GetIamPolicyRequest], - ~.Policy]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_iam_policy" not in self._stubs: - self._stubs["get_iam_policy"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/GetIamPolicy", - request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString, - response_deserializer=policy_pb2.Policy.FromString, - ) - return self._stubs["get_iam_policy"] - - @property - def test_iam_permissions( - self, - ) -> Callable[ - [iam_policy_pb2.TestIamPermissionsRequest], iam_policy_pb2.TestIamPermissionsResponse - ]: - r"""Return a callable for the test iam permissions method over gRPC. - Tests the specified permissions against the IAM access control - policy for a function. If the function does not exist, this will - return an empty set of permissions, not a NOT_FOUND error. - Returns: - Callable[[~.TestIamPermissionsRequest], - ~.TestIamPermissionsResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "test_iam_permissions" not in self._stubs: - self._stubs["test_iam_permissions"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/TestIamPermissions", - request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString, - response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString, - ) - return self._stubs["test_iam_permissions"] - - @property - def kind(self) -> str: - return "grpc" - - -__all__ = ( - 'PolicyBasedRoutingServiceGrpcTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc_asyncio.py deleted file mode 100644 index 56fe007b201c..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/services/policy_based_routing_service/transports/grpc_asyncio.py +++ /dev/null @@ -1,554 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import warnings -from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union - -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers_async -from google.api_core import operations_v1 -from google.auth import credentials as ga_credentials # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore - -import grpc # type: ignore -from grpc.experimental import aio # type: ignore - -from google.cloud.location import locations_pb2 # type: ignore -from google.cloud.networkconnectivity_v1.types import policy_based_routing -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from .base import PolicyBasedRoutingServiceTransport, DEFAULT_CLIENT_INFO -from .grpc import PolicyBasedRoutingServiceGrpcTransport - - -class PolicyBasedRoutingServiceGrpcAsyncIOTransport(PolicyBasedRoutingServiceTransport): - """gRPC AsyncIO backend transport for PolicyBasedRoutingService. - - Policy-Based Routing allows GCP customers to specify - flexibile routing policies for Layer 4 traffic traversing - through the connected service. - - This class defines the same methods as the primary client, so the - primary client can load the underlying transport implementation - and call it. - - It sends protocol buffers over the wire using gRPC (which is built on - top of HTTP/2); the ``grpcio`` package must be installed. - """ - - _grpc_channel: aio.Channel - _stubs: Dict[str, Callable] = {} - - @classmethod - def create_channel(cls, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - quota_project_id: Optional[str] = None, - **kwargs) -> aio.Channel: - """Create and return a gRPC AsyncIO channel object. - Args: - host (Optional[str]): The host for the channel to use. - credentials (Optional[~.Credentials]): The - authorization credentials to attach to requests. These - credentials identify this application to the service. If - none are specified, the client will attempt to ascertain - the credentials from the environment. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional[Sequence[str]]): A optional list of scopes needed for this - service. These are only used when credentials are not specified and - are passed to :func:`google.auth.default`. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - kwargs (Optional[dict]): Keyword arguments, which are passed to the - channel creation. - Returns: - aio.Channel: A gRPC AsyncIO channel object. - """ - - return grpc_helpers_async.create_channel( - host, - credentials=credentials, - credentials_file=credentials_file, - quota_project_id=quota_project_id, - default_scopes=cls.AUTH_SCOPES, - scopes=scopes, - default_host=cls.DEFAULT_HOST, - **kwargs - ) - - def __init__(self, *, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - channel: Optional[aio.Channel] = None, - api_mtls_endpoint: Optional[str] = None, - client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, - client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - quota_project_id: Optional[str] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - always_use_jwt_access: Optional[bool] = False, - api_audience: Optional[str] = None, - ) -> None: - """Instantiate the transport. - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - This argument is ignored if ``channel`` is provided. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional[Sequence[str]]): A optional list of scopes needed for this - service. These are only used when credentials are not specified and - are passed to :func:`google.auth.default`. - channel (Optional[aio.Channel]): A ``Channel`` instance through - which to make calls. - api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. - If provided, it overrides the ``host`` argument and tries to create - a mutual TLS channel with client SSL credentials from - ``client_cert_source`` or application default SSL credentials. - client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): - Deprecated. A callback to provide client SSL certificate bytes and - private key bytes, both in PEM format. It is ignored if - ``api_mtls_endpoint`` is None. - ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials - for the grpc channel. It is ignored if ``channel`` is provided. - client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): - A callback to provide client certificate bytes and private key bytes, - both in PEM format. It is used to configure a mutual TLS channel. It is - ignored if ``channel`` or ``ssl_channel_credentials`` is provided. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - - Raises: - google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport - creation failed for any reason. - google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` - and ``credentials_file`` are passed. - """ - self._grpc_channel = None - self._ssl_channel_credentials = ssl_channel_credentials - self._stubs: Dict[str, Callable] = {} - self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None - - if api_mtls_endpoint: - warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) - if client_cert_source: - warnings.warn("client_cert_source is deprecated", DeprecationWarning) - - if channel: - # Ignore credentials if a channel was passed. - credentials = False - # If a channel was explicitly provided, set it. - self._grpc_channel = channel - self._ssl_channel_credentials = None - else: - if api_mtls_endpoint: - host = api_mtls_endpoint - - # Create SSL credentials with client_cert_source or application - # default SSL credentials. - if client_cert_source: - cert, key = client_cert_source() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - else: - self._ssl_channel_credentials = SslCredentials().ssl_credentials - - else: - if client_cert_source_for_mtls and not ssl_channel_credentials: - cert, key = client_cert_source_for_mtls() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - - # The base transport sets the host, credentials and scopes - super().__init__( - host=host, - credentials=credentials, - credentials_file=credentials_file, - scopes=scopes, - quota_project_id=quota_project_id, - client_info=client_info, - always_use_jwt_access=always_use_jwt_access, - api_audience=api_audience, - ) - - if not self._grpc_channel: - self._grpc_channel = type(self).create_channel( - self._host, - # use the credentials which are saved - credentials=self._credentials, - # Set ``credentials_file`` to ``None`` here as - # the credentials that we saved earlier should be used. - credentials_file=None, - scopes=self._scopes, - ssl_credentials=self._ssl_channel_credentials, - quota_project_id=quota_project_id, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - # Wrap messages. This must be done after self._grpc_channel exists - self._prep_wrapped_messages(client_info) - - @property - def grpc_channel(self) -> aio.Channel: - """Create the channel designed to connect to this service. - - This property caches on the instance; repeated calls return - the same channel. - """ - # Return the channel from cache. - return self._grpc_channel - - @property - def operations_client(self) -> operations_v1.OperationsAsyncClient: - """Create the client designed to process long-running operations. - - This property caches on the instance; repeated calls return the same - client. - """ - # Quick check: Only create a new client if we do not already have one. - if self._operations_client is None: - self._operations_client = operations_v1.OperationsAsyncClient( - self.grpc_channel - ) - - # Return the client from cache. - return self._operations_client - - @property - def list_policy_based_routes(self) -> Callable[ - [policy_based_routing.ListPolicyBasedRoutesRequest], - Awaitable[policy_based_routing.ListPolicyBasedRoutesResponse]]: - r"""Return a callable for the list policy based routes method over gRPC. - - Lists PolicyBasedRoutes in a given project and - location. - - Returns: - Callable[[~.ListPolicyBasedRoutesRequest], - Awaitable[~.ListPolicyBasedRoutesResponse]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_policy_based_routes' not in self._stubs: - self._stubs['list_policy_based_routes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/ListPolicyBasedRoutes', - request_serializer=policy_based_routing.ListPolicyBasedRoutesRequest.serialize, - response_deserializer=policy_based_routing.ListPolicyBasedRoutesResponse.deserialize, - ) - return self._stubs['list_policy_based_routes'] - - @property - def get_policy_based_route(self) -> Callable[ - [policy_based_routing.GetPolicyBasedRouteRequest], - Awaitable[policy_based_routing.PolicyBasedRoute]]: - r"""Return a callable for the get policy based route method over gRPC. - - Gets details of a single PolicyBasedRoute. - - Returns: - Callable[[~.GetPolicyBasedRouteRequest], - Awaitable[~.PolicyBasedRoute]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_policy_based_route' not in self._stubs: - self._stubs['get_policy_based_route'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/GetPolicyBasedRoute', - request_serializer=policy_based_routing.GetPolicyBasedRouteRequest.serialize, - response_deserializer=policy_based_routing.PolicyBasedRoute.deserialize, - ) - return self._stubs['get_policy_based_route'] - - @property - def create_policy_based_route(self) -> Callable[ - [policy_based_routing.CreatePolicyBasedRouteRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the create policy based route method over gRPC. - - Creates a new PolicyBasedRoute in a given project and - location. - - Returns: - Callable[[~.CreatePolicyBasedRouteRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_policy_based_route' not in self._stubs: - self._stubs['create_policy_based_route'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/CreatePolicyBasedRoute', - request_serializer=policy_based_routing.CreatePolicyBasedRouteRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_policy_based_route'] - - @property - def delete_policy_based_route(self) -> Callable[ - [policy_based_routing.DeletePolicyBasedRouteRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the delete policy based route method over gRPC. - - Deletes a single PolicyBasedRoute. - - Returns: - Callable[[~.DeletePolicyBasedRouteRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_policy_based_route' not in self._stubs: - self._stubs['delete_policy_based_route'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1.PolicyBasedRoutingService/DeletePolicyBasedRoute', - request_serializer=policy_based_routing.DeletePolicyBasedRouteRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_policy_based_route'] - - def close(self): - return self.grpc_channel.close() - - @property - def delete_operation( - self, - ) -> Callable[[operations_pb2.DeleteOperationRequest], None]: - r"""Return a callable for the delete_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "delete_operation" not in self._stubs: - self._stubs["delete_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/DeleteOperation", - request_serializer=operations_pb2.DeleteOperationRequest.SerializeToString, - response_deserializer=None, - ) - return self._stubs["delete_operation"] - - @property - def cancel_operation( - self, - ) -> Callable[[operations_pb2.CancelOperationRequest], None]: - r"""Return a callable for the cancel_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "cancel_operation" not in self._stubs: - self._stubs["cancel_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/CancelOperation", - request_serializer=operations_pb2.CancelOperationRequest.SerializeToString, - response_deserializer=None, - ) - return self._stubs["cancel_operation"] - - @property - def get_operation( - self, - ) -> Callable[[operations_pb2.GetOperationRequest], operations_pb2.Operation]: - r"""Return a callable for the get_operation method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_operation" not in self._stubs: - self._stubs["get_operation"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/GetOperation", - request_serializer=operations_pb2.GetOperationRequest.SerializeToString, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs["get_operation"] - - @property - def list_operations( - self, - ) -> Callable[[operations_pb2.ListOperationsRequest], operations_pb2.ListOperationsResponse]: - r"""Return a callable for the list_operations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "list_operations" not in self._stubs: - self._stubs["list_operations"] = self.grpc_channel.unary_unary( - "/google.longrunning.Operations/ListOperations", - request_serializer=operations_pb2.ListOperationsRequest.SerializeToString, - response_deserializer=operations_pb2.ListOperationsResponse.FromString, - ) - return self._stubs["list_operations"] - - @property - def list_locations( - self, - ) -> Callable[[locations_pb2.ListLocationsRequest], locations_pb2.ListLocationsResponse]: - r"""Return a callable for the list locations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "list_locations" not in self._stubs: - self._stubs["list_locations"] = self.grpc_channel.unary_unary( - "/google.cloud.location.Locations/ListLocations", - request_serializer=locations_pb2.ListLocationsRequest.SerializeToString, - response_deserializer=locations_pb2.ListLocationsResponse.FromString, - ) - return self._stubs["list_locations"] - - @property - def get_location( - self, - ) -> Callable[[locations_pb2.GetLocationRequest], locations_pb2.Location]: - r"""Return a callable for the list locations method over gRPC. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_location" not in self._stubs: - self._stubs["get_location"] = self.grpc_channel.unary_unary( - "/google.cloud.location.Locations/GetLocation", - request_serializer=locations_pb2.GetLocationRequest.SerializeToString, - response_deserializer=locations_pb2.Location.FromString, - ) - return self._stubs["get_location"] - - @property - def set_iam_policy( - self, - ) -> Callable[[iam_policy_pb2.SetIamPolicyRequest], policy_pb2.Policy]: - r"""Return a callable for the set iam policy method over gRPC. - Sets the IAM access control policy on the specified - function. Replaces any existing policy. - Returns: - Callable[[~.SetIamPolicyRequest], - ~.Policy]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "set_iam_policy" not in self._stubs: - self._stubs["set_iam_policy"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/SetIamPolicy", - request_serializer=iam_policy_pb2.SetIamPolicyRequest.SerializeToString, - response_deserializer=policy_pb2.Policy.FromString, - ) - return self._stubs["set_iam_policy"] - - @property - def get_iam_policy( - self, - ) -> Callable[[iam_policy_pb2.GetIamPolicyRequest], policy_pb2.Policy]: - r"""Return a callable for the get iam policy method over gRPC. - Gets the IAM access control policy for a function. - Returns an empty policy if the function exists and does - not have a policy set. - Returns: - Callable[[~.GetIamPolicyRequest], - ~.Policy]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "get_iam_policy" not in self._stubs: - self._stubs["get_iam_policy"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/GetIamPolicy", - request_serializer=iam_policy_pb2.GetIamPolicyRequest.SerializeToString, - response_deserializer=policy_pb2.Policy.FromString, - ) - return self._stubs["get_iam_policy"] - - @property - def test_iam_permissions( - self, - ) -> Callable[ - [iam_policy_pb2.TestIamPermissionsRequest], iam_policy_pb2.TestIamPermissionsResponse - ]: - r"""Return a callable for the test iam permissions method over gRPC. - Tests the specified permissions against the IAM access control - policy for a function. If the function does not exist, this will - return an empty set of permissions, not a NOT_FOUND error. - Returns: - Callable[[~.TestIamPermissionsRequest], - ~.TestIamPermissionsResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if "test_iam_permissions" not in self._stubs: - self._stubs["test_iam_permissions"] = self.grpc_channel.unary_unary( - "/google.iam.v1.IAMPolicy/TestIamPermissions", - request_serializer=iam_policy_pb2.TestIamPermissionsRequest.SerializeToString, - response_deserializer=iam_policy_pb2.TestIamPermissionsResponse.FromString, - ) - return self._stubs["test_iam_permissions"] - - -__all__ = ( - 'PolicyBasedRoutingServiceGrpcAsyncIOTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/__init__.py deleted file mode 100644 index 026f4c533d69..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/__init__.py +++ /dev/null @@ -1,128 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from .common import ( - OperationMetadata, -) -from .hub import ( - AcceptHubSpokeRequest, - AcceptHubSpokeResponse, - CreateHubRequest, - CreateSpokeRequest, - DeleteHubRequest, - DeleteSpokeRequest, - GetGroupRequest, - GetHubRequest, - GetRouteRequest, - GetRouteTableRequest, - GetSpokeRequest, - Group, - Hub, - LinkedInterconnectAttachments, - LinkedRouterApplianceInstances, - LinkedVpcNetwork, - LinkedVpnTunnels, - ListGroupsRequest, - ListGroupsResponse, - ListHubSpokesRequest, - ListHubSpokesResponse, - ListHubsRequest, - ListHubsResponse, - ListRoutesRequest, - ListRoutesResponse, - ListRouteTablesRequest, - ListRouteTablesResponse, - ListSpokesRequest, - ListSpokesResponse, - LocationMetadata, - NextHopVpcNetwork, - RejectHubSpokeRequest, - RejectHubSpokeResponse, - Route, - RouterApplianceInstance, - RouteTable, - RoutingVPC, - Spoke, - SpokeSummary, - UpdateHubRequest, - UpdateSpokeRequest, - LocationFeature, - RouteType, - SpokeType, - State, -) -from .policy_based_routing import ( - CreatePolicyBasedRouteRequest, - DeletePolicyBasedRouteRequest, - GetPolicyBasedRouteRequest, - ListPolicyBasedRoutesRequest, - ListPolicyBasedRoutesResponse, - PolicyBasedRoute, -) - -__all__ = ( - 'OperationMetadata', - 'AcceptHubSpokeRequest', - 'AcceptHubSpokeResponse', - 'CreateHubRequest', - 'CreateSpokeRequest', - 'DeleteHubRequest', - 'DeleteSpokeRequest', - 'GetGroupRequest', - 'GetHubRequest', - 'GetRouteRequest', - 'GetRouteTableRequest', - 'GetSpokeRequest', - 'Group', - 'Hub', - 'LinkedInterconnectAttachments', - 'LinkedRouterApplianceInstances', - 'LinkedVpcNetwork', - 'LinkedVpnTunnels', - 'ListGroupsRequest', - 'ListGroupsResponse', - 'ListHubSpokesRequest', - 'ListHubSpokesResponse', - 'ListHubsRequest', - 'ListHubsResponse', - 'ListRoutesRequest', - 'ListRoutesResponse', - 'ListRouteTablesRequest', - 'ListRouteTablesResponse', - 'ListSpokesRequest', - 'ListSpokesResponse', - 'LocationMetadata', - 'NextHopVpcNetwork', - 'RejectHubSpokeRequest', - 'RejectHubSpokeResponse', - 'Route', - 'RouterApplianceInstance', - 'RouteTable', - 'RoutingVPC', - 'Spoke', - 'SpokeSummary', - 'UpdateHubRequest', - 'UpdateSpokeRequest', - 'LocationFeature', - 'RouteType', - 'SpokeType', - 'State', - 'CreatePolicyBasedRouteRequest', - 'DeletePolicyBasedRouteRequest', - 'GetPolicyBasedRouteRequest', - 'ListPolicyBasedRoutesRequest', - 'ListPolicyBasedRoutesResponse', - 'PolicyBasedRoute', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/common.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/common.py deleted file mode 100644 index 328f6bffea4e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/common.py +++ /dev/null @@ -1,95 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from __future__ import annotations - -from typing import MutableMapping, MutableSequence - -import proto # type: ignore - -from google.protobuf import timestamp_pb2 # type: ignore - - -__protobuf__ = proto.module( - package='google.cloud.networkconnectivity.v1', - manifest={ - 'OperationMetadata', - }, -) - - -class OperationMetadata(proto.Message): - r"""Represents the metadata of the long-running operation. - - Attributes: - create_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the operation was - created. - end_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the operation finished - running. - target (str): - Output only. Server-defined resource path for - the target of the operation. - verb (str): - Output only. Name of the verb executed by the - operation. - status_message (str): - Output only. Human-readable status of the - operation, if any. - requested_cancellation (bool): - Output only. Identifies whether the user has requested - cancellation of the operation. Operations that have been - cancelled successfully have [Operation.error][] value with a - [google.rpc.Status.code][google.rpc.Status.code] of 1, - corresponding to ``Code.CANCELLED``. - api_version (str): - Output only. API version used to start the - operation. - """ - - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=1, - message=timestamp_pb2.Timestamp, - ) - end_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=2, - message=timestamp_pb2.Timestamp, - ) - target: str = proto.Field( - proto.STRING, - number=3, - ) - verb: str = proto.Field( - proto.STRING, - number=4, - ) - status_message: str = proto.Field( - proto.STRING, - number=5, - ) - requested_cancellation: bool = proto.Field( - proto.BOOL, - number=6, - ) - api_version: str = proto.Field( - proto.STRING, - number=7, - ) - - -__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/hub.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/hub.py deleted file mode 100644 index c3fe6a2cfe8b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/hub.py +++ /dev/null @@ -1,2030 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from __future__ import annotations - -from typing import MutableMapping, MutableSequence - -import proto # type: ignore - -from google.protobuf import field_mask_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore - - -__protobuf__ = proto.module( - package='google.cloud.networkconnectivity.v1', - manifest={ - 'LocationFeature', - 'RouteType', - 'State', - 'SpokeType', - 'Hub', - 'RoutingVPC', - 'Spoke', - 'RouteTable', - 'Route', - 'Group', - 'ListHubsRequest', - 'ListHubsResponse', - 'GetHubRequest', - 'CreateHubRequest', - 'UpdateHubRequest', - 'DeleteHubRequest', - 'ListHubSpokesRequest', - 'ListHubSpokesResponse', - 'ListSpokesRequest', - 'ListSpokesResponse', - 'GetSpokeRequest', - 'CreateSpokeRequest', - 'UpdateSpokeRequest', - 'DeleteSpokeRequest', - 'AcceptHubSpokeRequest', - 'AcceptHubSpokeResponse', - 'RejectHubSpokeRequest', - 'RejectHubSpokeResponse', - 'GetRouteTableRequest', - 'GetRouteRequest', - 'ListRoutesRequest', - 'ListRoutesResponse', - 'ListRouteTablesRequest', - 'ListRouteTablesResponse', - 'ListGroupsRequest', - 'ListGroupsResponse', - 'LinkedVpnTunnels', - 'LinkedInterconnectAttachments', - 'LinkedRouterApplianceInstances', - 'LinkedVpcNetwork', - 'RouterApplianceInstance', - 'LocationMetadata', - 'NextHopVpcNetwork', - 'SpokeSummary', - 'GetGroupRequest', - }, -) - - -class LocationFeature(proto.Enum): - r"""Supported features for a location - - Values: - LOCATION_FEATURE_UNSPECIFIED (0): - No publicly supported feature in this - location - SITE_TO_CLOUD_SPOKES (1): - Site-to-cloud spokes are supported in this - location - SITE_TO_SITE_SPOKES (2): - Site-to-site spokes are supported in this - location - """ - LOCATION_FEATURE_UNSPECIFIED = 0 - SITE_TO_CLOUD_SPOKES = 1 - SITE_TO_SITE_SPOKES = 2 - - -class RouteType(proto.Enum): - r"""The route's type - - Values: - ROUTE_TYPE_UNSPECIFIED (0): - No route type information specified - VPC_PRIMARY_SUBNET (1): - The route leads to a destination within the - primary address range of the VPC network's - subnet. - VPC_SECONDARY_SUBNET (2): - The route leads to a destination within the - secondary address range of the VPC network's - subnet. - """ - ROUTE_TYPE_UNSPECIFIED = 0 - VPC_PRIMARY_SUBNET = 1 - VPC_SECONDARY_SUBNET = 2 - - -class State(proto.Enum): - r"""The State enum represents the lifecycle stage of a Network - Connectivity Center resource. - - Values: - STATE_UNSPECIFIED (0): - No state information available - CREATING (1): - The resource's create operation is in - progress. - ACTIVE (2): - The resource is active - DELETING (3): - The resource's delete operation is in - progress. - ACCEPTING (8): - The resource's accept operation is in - progress. - REJECTING (9): - The resource's reject operation is in - progress. - UPDATING (6): - The resource's update operation is in - progress. - INACTIVE (7): - The resource is inactive. - OBSOLETE (10): - The hub associated with this spoke resource - has been deleted. This state applies to spoke - resources only. - """ - STATE_UNSPECIFIED = 0 - CREATING = 1 - ACTIVE = 2 - DELETING = 3 - ACCEPTING = 8 - REJECTING = 9 - UPDATING = 6 - INACTIVE = 7 - OBSOLETE = 10 - - -class SpokeType(proto.Enum): - r"""The SpokeType enum represents the type of spoke. The type - reflects the kind of resource that a spoke is associated with. - - Values: - SPOKE_TYPE_UNSPECIFIED (0): - Unspecified spoke type. - VPN_TUNNEL (1): - Spokes associated with VPN tunnels. - INTERCONNECT_ATTACHMENT (2): - Spokes associated with VLAN attachments. - ROUTER_APPLIANCE (3): - Spokes associated with router appliance - instances. - VPC_NETWORK (4): - Spokes associated with VPC networks. - """ - SPOKE_TYPE_UNSPECIFIED = 0 - VPN_TUNNEL = 1 - INTERCONNECT_ATTACHMENT = 2 - ROUTER_APPLIANCE = 3 - VPC_NETWORK = 4 - - -class Hub(proto.Message): - r"""A Network Connectivity Center hub is a global management - resource to which you attach spokes. A single hub can contain - spokes from multiple regions. However, if any of a hub's spokes - use the site-to-site data transfer feature, the resources - associated with those spokes must all be in the same VPC - network. Spokes that do not use site-to-site data transfer can - be associated with any VPC network in your project. - - Attributes: - name (str): - Immutable. The name of the hub. Hub names must be unique. - They use the following form: - ``projects/{project_number}/locations/global/hubs/{hub_id}`` - create_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the hub was created. - update_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the hub was last - updated. - labels (MutableMapping[str, str]): - Optional labels in key-value pair format. For more - information about labels, see `Requirements for - labels `__. - description (str): - An optional description of the hub. - unique_id (str): - Output only. The Google-generated UUID for the hub. This - value is unique across all hub resources. If a hub is - deleted and another with the same name is created, the new - hub is assigned a different unique_id. - state (google.cloud.networkconnectivity_v1.types.State): - Output only. The current lifecycle state of - this hub. - routing_vpcs (MutableSequence[google.cloud.networkconnectivity_v1.types.RoutingVPC]): - The VPC networks associated with this hub's - spokes. - This field is read-only. Network Connectivity - Center automatically populates it based on the - set of spokes attached to the hub. - route_tables (MutableSequence[str]): - Output only. The route tables that belong to this hub. They - use the following form: - ``projects/{project_number}/locations/global/hubs/{hub_id}/routeTables/{route_table_id}`` - - This field is read-only. Network Connectivity Center - automatically populates it based on the route tables nested - under the hub. - spoke_summary (google.cloud.networkconnectivity_v1.types.SpokeSummary): - Output only. A summary of the spokes - associated with a hub. The summary includes a - count of spokes according to type and according - to state. If any spokes are inactive, the - summary also lists the reasons they are - inactive, including a count for each reason. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=2, - message=timestamp_pb2.Timestamp, - ) - update_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=3, - message=timestamp_pb2.Timestamp, - ) - labels: MutableMapping[str, str] = proto.MapField( - proto.STRING, - proto.STRING, - number=4, - ) - description: str = proto.Field( - proto.STRING, - number=5, - ) - unique_id: str = proto.Field( - proto.STRING, - number=8, - ) - state: 'State' = proto.Field( - proto.ENUM, - number=9, - enum='State', - ) - routing_vpcs: MutableSequence['RoutingVPC'] = proto.RepeatedField( - proto.MESSAGE, - number=10, - message='RoutingVPC', - ) - route_tables: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=11, - ) - spoke_summary: 'SpokeSummary' = proto.Field( - proto.MESSAGE, - number=12, - message='SpokeSummary', - ) - - -class RoutingVPC(proto.Message): - r"""RoutingVPC contains information about the VPC networks - associated with the spokes of a Network Connectivity Center hub. - - Attributes: - uri (str): - The URI of the VPC network. - required_for_new_site_to_site_data_transfer_spokes (bool): - Output only. If true, indicates that this VPC network is - currently associated with spokes that use the data transfer - feature (spokes where the site_to_site_data_transfer field - is set to true). If you create new spokes that use data - transfer, they must be associated with this VPC network. At - most, one VPC network will have this field set to true. - """ - - uri: str = proto.Field( - proto.STRING, - number=1, - ) - required_for_new_site_to_site_data_transfer_spokes: bool = proto.Field( - proto.BOOL, - number=2, - ) - - -class Spoke(proto.Message): - r"""A Network Connectivity Center spoke represents one or more network - connectivity resources. - - When you create a spoke, you associate it with a hub. You must also - identify a value for exactly one of the following fields: - - - linked_vpn_tunnels - - linked_interconnect_attachments - - linked_router_appliance_instances - - linked_vpc_network - - Attributes: - name (str): - Immutable. The name of the spoke. Spoke names must be - unique. They use the following form: - ``projects/{project_number}/locations/{region}/spokes/{spoke_id}`` - create_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the spoke was created. - update_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the spoke was last - updated. - labels (MutableMapping[str, str]): - Optional labels in key-value pair format. For more - information about labels, see `Requirements for - labels `__. - description (str): - An optional description of the spoke. - hub (str): - Immutable. The name of the hub that this - spoke is attached to. - group (str): - Optional. The name of the group that this - spoke is associated with. - linked_vpn_tunnels (google.cloud.networkconnectivity_v1.types.LinkedVpnTunnels): - VPN tunnels that are associated with the - spoke. - linked_interconnect_attachments (google.cloud.networkconnectivity_v1.types.LinkedInterconnectAttachments): - VLAN attachments that are associated with the - spoke. - linked_router_appliance_instances (google.cloud.networkconnectivity_v1.types.LinkedRouterApplianceInstances): - Router appliance instances that are - associated with the spoke. - linked_vpc_network (google.cloud.networkconnectivity_v1.types.LinkedVpcNetwork): - Optional. VPC network that is associated with - the spoke. - unique_id (str): - Output only. The Google-generated UUID for the spoke. This - value is unique across all spoke resources. If a spoke is - deleted and another with the same name is created, the new - spoke is assigned a different ``unique_id``. - state (google.cloud.networkconnectivity_v1.types.State): - Output only. The current lifecycle state of - this spoke. - reasons (MutableSequence[google.cloud.networkconnectivity_v1.types.Spoke.StateReason]): - Output only. The reasons for current state of the spoke. - Only present when the spoke is in the ``INACTIVE`` state. - spoke_type (google.cloud.networkconnectivity_v1.types.SpokeType): - Output only. The type of resource associated - with the spoke. - """ - - class StateReason(proto.Message): - r"""The reason a spoke is inactive. - - Attributes: - code (google.cloud.networkconnectivity_v1.types.Spoke.StateReason.Code): - The code associated with this reason. - message (str): - Human-readable details about this reason. - user_details (str): - Additional information provided by the user - in the RejectSpoke call. - """ - class Code(proto.Enum): - r"""The Code enum represents the various reasons a state can be - ``INACTIVE``. - - Values: - CODE_UNSPECIFIED (0): - No information available. - PENDING_REVIEW (1): - The proposed spoke is pending review. - REJECTED (2): - The proposed spoke has been rejected by the - hub administrator. - PAUSED (3): - The spoke has been deactivated internally. - FAILED (4): - Network Connectivity Center encountered - errors while accepting the spoke. - """ - CODE_UNSPECIFIED = 0 - PENDING_REVIEW = 1 - REJECTED = 2 - PAUSED = 3 - FAILED = 4 - - code: 'Spoke.StateReason.Code' = proto.Field( - proto.ENUM, - number=1, - enum='Spoke.StateReason.Code', - ) - message: str = proto.Field( - proto.STRING, - number=2, - ) - user_details: str = proto.Field( - proto.STRING, - number=3, - ) - - name: str = proto.Field( - proto.STRING, - number=1, - ) - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=2, - message=timestamp_pb2.Timestamp, - ) - update_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=3, - message=timestamp_pb2.Timestamp, - ) - labels: MutableMapping[str, str] = proto.MapField( - proto.STRING, - proto.STRING, - number=4, - ) - description: str = proto.Field( - proto.STRING, - number=5, - ) - hub: str = proto.Field( - proto.STRING, - number=6, - ) - group: str = proto.Field( - proto.STRING, - number=23, - ) - linked_vpn_tunnels: 'LinkedVpnTunnels' = proto.Field( - proto.MESSAGE, - number=17, - message='LinkedVpnTunnels', - ) - linked_interconnect_attachments: 'LinkedInterconnectAttachments' = proto.Field( - proto.MESSAGE, - number=18, - message='LinkedInterconnectAttachments', - ) - linked_router_appliance_instances: 'LinkedRouterApplianceInstances' = proto.Field( - proto.MESSAGE, - number=19, - message='LinkedRouterApplianceInstances', - ) - linked_vpc_network: 'LinkedVpcNetwork' = proto.Field( - proto.MESSAGE, - number=20, - message='LinkedVpcNetwork', - ) - unique_id: str = proto.Field( - proto.STRING, - number=11, - ) - state: 'State' = proto.Field( - proto.ENUM, - number=15, - enum='State', - ) - reasons: MutableSequence[StateReason] = proto.RepeatedField( - proto.MESSAGE, - number=21, - message=StateReason, - ) - spoke_type: 'SpokeType' = proto.Field( - proto.ENUM, - number=22, - enum='SpokeType', - ) - - -class RouteTable(proto.Message): - r""" - - Attributes: - name (str): - Immutable. The name of the route table. Route table names - must be unique. They use the following form: - ``projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}`` - create_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the route table was - created. - update_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the route table was - last updated. - labels (MutableMapping[str, str]): - Optional labels in key-value pair format. For more - information about labels, see `Requirements for - labels `__. - description (str): - An optional description of the route table. - uid (str): - Output only. The Google-generated UUID for the route table. - This value is unique across all route table resources. If a - route table is deleted and another with the same name is - created, the new route table is assigned a different - ``uid``. - state (google.cloud.networkconnectivity_v1.types.State): - Output only. The current lifecycle state of - this route table. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=2, - message=timestamp_pb2.Timestamp, - ) - update_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=3, - message=timestamp_pb2.Timestamp, - ) - labels: MutableMapping[str, str] = proto.MapField( - proto.STRING, - proto.STRING, - number=4, - ) - description: str = proto.Field( - proto.STRING, - number=5, - ) - uid: str = proto.Field( - proto.STRING, - number=6, - ) - state: 'State' = proto.Field( - proto.ENUM, - number=7, - enum='State', - ) - - -class Route(proto.Message): - r"""A route defines a path from VM instances within a spoke to a - specific destination resource. Only VPC spokes have routes. - - Attributes: - name (str): - Immutable. The name of the route. Route names must be - unique. Route names use the following form: - ``projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}/routes/{route_id}`` - create_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the route was created. - update_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the route was last - updated. - ip_cidr_range (str): - The destination IP address range. - type_ (google.cloud.networkconnectivity_v1.types.RouteType): - Output only. The route's type. Its type is - determined by the properties of its IP address - range. - next_hop_vpc_network (google.cloud.networkconnectivity_v1.types.NextHopVpcNetwork): - Immutable. The destination VPC network for - packets on this route. - labels (MutableMapping[str, str]): - Optional labels in key-value pair format. For more - information about labels, see `Requirements for - labels `__. - description (str): - An optional description of the route. - uid (str): - Output only. The Google-generated UUID for the route. This - value is unique across all Network Connectivity Center route - resources. If a route is deleted and another with the same - name is created, the new route is assigned a different - ``uid``. - state (google.cloud.networkconnectivity_v1.types.State): - Output only. The current lifecycle state of - the route. - spoke (str): - Immutable. The spoke that this route leads - to. Example: - projects/12345/locations/global/spokes/SPOKE - location (str): - Output only. The location of the route. - Uses the following form: - "projects/{project}/locations/{location}" - Example: projects/1234/locations/us-central1 - """ - - name: str = proto.Field( - proto.STRING, - number=3, - ) - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=4, - message=timestamp_pb2.Timestamp, - ) - update_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=5, - message=timestamp_pb2.Timestamp, - ) - ip_cidr_range: str = proto.Field( - proto.STRING, - number=1, - ) - type_: 'RouteType' = proto.Field( - proto.ENUM, - number=10, - enum='RouteType', - ) - next_hop_vpc_network: 'NextHopVpcNetwork' = proto.Field( - proto.MESSAGE, - number=2, - message='NextHopVpcNetwork', - ) - labels: MutableMapping[str, str] = proto.MapField( - proto.STRING, - proto.STRING, - number=6, - ) - description: str = proto.Field( - proto.STRING, - number=7, - ) - uid: str = proto.Field( - proto.STRING, - number=8, - ) - state: 'State' = proto.Field( - proto.ENUM, - number=9, - enum='State', - ) - spoke: str = proto.Field( - proto.STRING, - number=11, - ) - location: str = proto.Field( - proto.STRING, - number=12, - ) - - -class Group(proto.Message): - r"""A group represents a subset of spokes attached to a hub. - - Attributes: - name (str): - Immutable. The name of the group. Group names must be - unique. They use the following form: - ``projects/{project_number}/locations/global/hubs/{hub}/groups/{group_id}`` - create_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the group was created. - update_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the group was last - updated. - labels (MutableMapping[str, str]): - Optional. Labels in key-value pair format. For more - information about labels, see `Requirements for - labels `__. - description (str): - Optional. The description of the group. - uid (str): - Output only. The Google-generated UUID for the group. This - value is unique across all group resources. If a group is - deleted and another with the same name is created, the new - route table is assigned a different unique_id. - state (google.cloud.networkconnectivity_v1.types.State): - Output only. The current lifecycle state of - this group. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=2, - message=timestamp_pb2.Timestamp, - ) - update_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=3, - message=timestamp_pb2.Timestamp, - ) - labels: MutableMapping[str, str] = proto.MapField( - proto.STRING, - proto.STRING, - number=4, - ) - description: str = proto.Field( - proto.STRING, - number=5, - ) - uid: str = proto.Field( - proto.STRING, - number=6, - ) - state: 'State' = proto.Field( - proto.ENUM, - number=7, - enum='State', - ) - - -class ListHubsRequest(proto.Message): - r"""Request for - [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] - method. - - Attributes: - parent (str): - Required. The parent resource's name. - page_size (int): - The maximum number of results per page to - return. - page_token (str): - The page token. - filter (str): - An expression that filters the list of - results. - order_by (str): - Sort the results by a certain order. - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - page_size: int = proto.Field( - proto.INT32, - number=2, - ) - page_token: str = proto.Field( - proto.STRING, - number=3, - ) - filter: str = proto.Field( - proto.STRING, - number=4, - ) - order_by: str = proto.Field( - proto.STRING, - number=5, - ) - - -class ListHubsResponse(proto.Message): - r"""Response for - [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] - method. - - Attributes: - hubs (MutableSequence[google.cloud.networkconnectivity_v1.types.Hub]): - The requested hubs. - next_page_token (str): - The token for the next page of the response. To see more - results, use this value as the page_token for your next - request. If this value is empty, there are no more results. - unreachable (MutableSequence[str]): - Locations that could not be reached. - """ - - @property - def raw_page(self): - return self - - hubs: MutableSequence['Hub'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='Hub', - ) - next_page_token: str = proto.Field( - proto.STRING, - number=2, - ) - unreachable: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=3, - ) - - -class GetHubRequest(proto.Message): - r"""Request for - [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub] - method. - - Attributes: - name (str): - Required. The name of the hub resource to - get. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - - -class CreateHubRequest(proto.Message): - r"""Request for - [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub] - method. - - Attributes: - parent (str): - Required. The parent resource. - hub_id (str): - Required. A unique identifier for the hub. - hub (google.cloud.networkconnectivity_v1.types.Hub): - Required. The initial values for a new hub. - request_id (str): - Optional. A request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server knows to ignore - the request if it has already been completed. - The server guarantees that a request doesn't - result in creation of duplicate commitments for - at least 60 minutes. - - 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 to see whether the - original operation was received. If it was, the - server ignores the second request. This behavior - prevents clients from mistakenly 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). - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - hub_id: str = proto.Field( - proto.STRING, - number=2, - ) - hub: 'Hub' = proto.Field( - proto.MESSAGE, - number=3, - message='Hub', - ) - request_id: str = proto.Field( - proto.STRING, - number=4, - ) - - -class UpdateHubRequest(proto.Message): - r"""Request for - [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub] - method. - - Attributes: - update_mask (google.protobuf.field_mask_pb2.FieldMask): - Optional. In the case of an update to an existing hub, field - mask is used to specify the fields to be overwritten. The - fields specified in the update_mask are relative to the - resource, not the full request. A field is overwritten if it - is in the mask. If the user does not provide a mask, then - all fields are overwritten. - hub (google.cloud.networkconnectivity_v1.types.Hub): - Required. The state that the hub should be in - after the update. - request_id (str): - Optional. A request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server knows to ignore - the request if it has already been completed. - The server guarantees that a request doesn't - result in creation of duplicate commitments for - at least 60 minutes. - - 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 to see whether the - original operation was received. If it was, the - server ignores the second request. This behavior - prevents clients from mistakenly 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). - """ - - update_mask: field_mask_pb2.FieldMask = proto.Field( - proto.MESSAGE, - number=1, - message=field_mask_pb2.FieldMask, - ) - hub: 'Hub' = proto.Field( - proto.MESSAGE, - number=2, - message='Hub', - ) - request_id: str = proto.Field( - proto.STRING, - number=3, - ) - - -class DeleteHubRequest(proto.Message): - r"""The request for - [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub]. - - Attributes: - name (str): - Required. The name of the hub to delete. - request_id (str): - Optional. A request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server knows to ignore - the request if it has already been completed. - The server guarantees that a request doesn't - result in creation of duplicate commitments for - at least 60 minutes. - - 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 to see whether the - original operation was received. If it was, the - server ignores the second request. This behavior - prevents clients from mistakenly 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). - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - request_id: str = proto.Field( - proto.STRING, - number=2, - ) - - -class ListHubSpokesRequest(proto.Message): - r"""The request for - [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. - - Attributes: - name (str): - Required. The name of the hub. - spoke_locations (MutableSequence[str]): - A list of locations. Specify one of the following: - ``[global]``, a single region (for example, - ``[us-central1]``), or a combination of values (for example, - ``[global, us-central1, us-west1]``). If the spoke_locations - field is populated, the list of results includes only spokes - in the specified location. If the spoke_locations field is - not populated, the list of results includes spokes in all - locations. - page_size (int): - The maximum number of results to return per - page. - page_token (str): - The page token. - filter (str): - An expression that filters the list of - results. - order_by (str): - Sort the results by name or create_time. - view (google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest.SpokeView): - The view of the spoke to return. - The view that you use determines which spoke - fields are included in the response. - """ - class SpokeView(proto.Enum): - r"""Enum that controls which spoke fields are included in the - response. - - Values: - SPOKE_VIEW_UNSPECIFIED (0): - The spoke view is unspecified. When the spoke view is - unspecified, the API returns the same fields as the - ``BASIC`` view. - BASIC (1): - Includes ``name``, ``create_time``, ``hub``, ``unique_id``, - ``state``, ``reasons``, and ``spoke_type``. This is the - default value. - DETAILED (2): - Includes all spoke fields except ``labels``. You can use the - ``DETAILED`` view only when you set the ``spoke_locations`` - field to ``[global]``. - """ - SPOKE_VIEW_UNSPECIFIED = 0 - BASIC = 1 - DETAILED = 2 - - name: str = proto.Field( - proto.STRING, - number=1, - ) - spoke_locations: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=2, - ) - page_size: int = proto.Field( - proto.INT32, - number=3, - ) - page_token: str = proto.Field( - proto.STRING, - number=4, - ) - filter: str = proto.Field( - proto.STRING, - number=5, - ) - order_by: str = proto.Field( - proto.STRING, - number=6, - ) - view: SpokeView = proto.Field( - proto.ENUM, - number=7, - enum=SpokeView, - ) - - -class ListHubSpokesResponse(proto.Message): - r"""The response for - [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. - - Attributes: - spokes (MutableSequence[google.cloud.networkconnectivity_v1.types.Spoke]): - The requested spokes. The spoke fields can be partially - populated based on the ``view`` field in the request - message. - next_page_token (str): - The token for the next page of the response. To see more - results, use this value as the page_token for your next - request. If this value is empty, there are no more results. - unreachable (MutableSequence[str]): - Locations that could not be reached. - """ - - @property - def raw_page(self): - return self - - spokes: MutableSequence['Spoke'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='Spoke', - ) - next_page_token: str = proto.Field( - proto.STRING, - number=2, - ) - unreachable: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=3, - ) - - -class ListSpokesRequest(proto.Message): - r"""The request for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. - - Attributes: - parent (str): - Required. The parent resource. - page_size (int): - The maximum number of results to return per - page. - page_token (str): - The page token. - filter (str): - An expression that filters the list of - results. - order_by (str): - Sort the results by a certain order. - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - page_size: int = proto.Field( - proto.INT32, - number=2, - ) - page_token: str = proto.Field( - proto.STRING, - number=3, - ) - filter: str = proto.Field( - proto.STRING, - number=4, - ) - order_by: str = proto.Field( - proto.STRING, - number=5, - ) - - -class ListSpokesResponse(proto.Message): - r"""The response for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. - - Attributes: - spokes (MutableSequence[google.cloud.networkconnectivity_v1.types.Spoke]): - The requested spokes. - next_page_token (str): - The token for the next page of the response. To see more - results, use this value as the page_token for your next - request. If this value is empty, there are no more results. - unreachable (MutableSequence[str]): - Locations that could not be reached. - """ - - @property - def raw_page(self): - return self - - spokes: MutableSequence['Spoke'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='Spoke', - ) - next_page_token: str = proto.Field( - proto.STRING, - number=2, - ) - unreachable: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=3, - ) - - -class GetSpokeRequest(proto.Message): - r"""The request for - [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke]. - - Attributes: - name (str): - Required. The name of the spoke resource. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - - -class CreateSpokeRequest(proto.Message): - r"""The request for - [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke]. - - Attributes: - parent (str): - Required. The parent resource. - spoke_id (str): - Required. Unique id for the spoke to create. - spoke (google.cloud.networkconnectivity_v1.types.Spoke): - Required. The initial values for a new spoke. - request_id (str): - Optional. A request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server knows to ignore - the request if it has already been completed. - The server guarantees that a request doesn't - result in creation of duplicate commitments for - at least 60 minutes. - - 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 to see whether the - original operation was received. If it was, the - server ignores the second request. This behavior - prevents clients from mistakenly 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). - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - spoke_id: str = proto.Field( - proto.STRING, - number=2, - ) - spoke: 'Spoke' = proto.Field( - proto.MESSAGE, - number=3, - message='Spoke', - ) - request_id: str = proto.Field( - proto.STRING, - number=4, - ) - - -class UpdateSpokeRequest(proto.Message): - r"""Request for - [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke] - method. - - Attributes: - update_mask (google.protobuf.field_mask_pb2.FieldMask): - Optional. In the case of an update to an existing spoke, - field mask is used to specify the fields to be overwritten. - The fields specified in the update_mask are relative to the - resource, not the full request. A field is overwritten if it - is in the mask. If the user does not provide a mask, then - all fields are overwritten. - spoke (google.cloud.networkconnectivity_v1.types.Spoke): - Required. The state that the spoke should be - in after the update. - request_id (str): - Optional. A request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server knows to ignore - the request if it has already been completed. - The server guarantees that a request doesn't - result in creation of duplicate commitments for - at least 60 minutes. - - 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 to see whether the - original operation was received. If it was, the - server ignores the second request. This behavior - prevents clients from mistakenly 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). - """ - - update_mask: field_mask_pb2.FieldMask = proto.Field( - proto.MESSAGE, - number=1, - message=field_mask_pb2.FieldMask, - ) - spoke: 'Spoke' = proto.Field( - proto.MESSAGE, - number=2, - message='Spoke', - ) - request_id: str = proto.Field( - proto.STRING, - number=3, - ) - - -class DeleteSpokeRequest(proto.Message): - r"""The request for - [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. - - Attributes: - name (str): - Required. The name of the spoke to delete. - request_id (str): - Optional. A request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server knows to ignore - the request if it has already been completed. - The server guarantees that a request doesn't - result in creation of duplicate commitments for - at least 60 minutes. - - 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 to see whether the - original operation was received. If it was, the - server ignores the second request. This behavior - prevents clients from mistakenly 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). - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - request_id: str = proto.Field( - proto.STRING, - number=2, - ) - - -class AcceptHubSpokeRequest(proto.Message): - r"""The request for - [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. - - Attributes: - name (str): - Required. The name of the hub into which to - accept the spoke. - spoke_uri (str): - Required. The URI of the spoke to accept into - the hub. - request_id (str): - Optional. A request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server knows to ignore - the request if it has already been completed. - The server guarantees that a request doesn't - result in creation of duplicate commitments for - at least 60 minutes. - - 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 to see whether the - original operation was received. If it was, the - server ignores the second request. This behavior - prevents clients from mistakenly 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). - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - spoke_uri: str = proto.Field( - proto.STRING, - number=2, - ) - request_id: str = proto.Field( - proto.STRING, - number=3, - ) - - -class AcceptHubSpokeResponse(proto.Message): - r"""The response for - [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. - - Attributes: - spoke (google.cloud.networkconnectivity_v1.types.Spoke): - The spoke that was operated on. - """ - - spoke: 'Spoke' = proto.Field( - proto.MESSAGE, - number=1, - message='Spoke', - ) - - -class RejectHubSpokeRequest(proto.Message): - r"""The request for - [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. - - Attributes: - name (str): - Required. The name of the hub from which to - reject the spoke. - spoke_uri (str): - Required. The URI of the spoke to reject from - the hub. - request_id (str): - Optional. A request ID to identify requests. - Specify a unique request ID so that if you must - retry your request, the server knows to ignore - the request if it has already been completed. - The server guarantees that a request doesn't - result in creation of duplicate commitments for - at least 60 minutes. - - 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 to see whether the - original operation was received. If it was, the - server ignores the second request. This behavior - prevents clients from mistakenly 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). - details (str): - Optional. Additional information provided by - the hub administrator. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - spoke_uri: str = proto.Field( - proto.STRING, - number=2, - ) - request_id: str = proto.Field( - proto.STRING, - number=3, - ) - details: str = proto.Field( - proto.STRING, - number=4, - ) - - -class RejectHubSpokeResponse(proto.Message): - r"""The response for - [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. - - Attributes: - spoke (google.cloud.networkconnectivity_v1.types.Spoke): - The spoke that was operated on. - """ - - spoke: 'Spoke' = proto.Field( - proto.MESSAGE, - number=1, - message='Spoke', - ) - - -class GetRouteTableRequest(proto.Message): - r"""The request for - [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. - - Attributes: - name (str): - Required. The name of the route table - resource. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - - -class GetRouteRequest(proto.Message): - r"""The request for - [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. - - Attributes: - name (str): - Required. The name of the route resource. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - - -class ListRoutesRequest(proto.Message): - r"""Request for - [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] - method. - - Attributes: - parent (str): - Required. The parent resource's name. - page_size (int): - The maximum number of results to return per - page. - page_token (str): - The page token. - filter (str): - An expression that filters the list of - results. - order_by (str): - Sort the results by a certain order. - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - page_size: int = proto.Field( - proto.INT32, - number=2, - ) - page_token: str = proto.Field( - proto.STRING, - number=3, - ) - filter: str = proto.Field( - proto.STRING, - number=4, - ) - order_by: str = proto.Field( - proto.STRING, - number=5, - ) - - -class ListRoutesResponse(proto.Message): - r"""Response for - [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] - method. - - Attributes: - routes (MutableSequence[google.cloud.networkconnectivity_v1.types.Route]): - The requested routes. - next_page_token (str): - The token for the next page of the response. To see more - results, use this value as the page_token for your next - request. If this value is empty, there are no more results. - unreachable (MutableSequence[str]): - RouteTables that could not be reached. - """ - - @property - def raw_page(self): - return self - - routes: MutableSequence['Route'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='Route', - ) - next_page_token: str = proto.Field( - proto.STRING, - number=2, - ) - unreachable: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=3, - ) - - -class ListRouteTablesRequest(proto.Message): - r"""Request for - [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] - method. - - Attributes: - parent (str): - Required. The parent resource's name. - page_size (int): - The maximum number of results to return per - page. - page_token (str): - The page token. - filter (str): - An expression that filters the list of - results. - order_by (str): - Sort the results by a certain order. - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - page_size: int = proto.Field( - proto.INT32, - number=2, - ) - page_token: str = proto.Field( - proto.STRING, - number=3, - ) - filter: str = proto.Field( - proto.STRING, - number=4, - ) - order_by: str = proto.Field( - proto.STRING, - number=5, - ) - - -class ListRouteTablesResponse(proto.Message): - r"""Response for - [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] - method. - - Attributes: - route_tables (MutableSequence[google.cloud.networkconnectivity_v1.types.RouteTable]): - The requested route tables. - next_page_token (str): - The token for the next page of the response. To see more - results, use this value as the page_token for your next - request. If this value is empty, there are no more results. - unreachable (MutableSequence[str]): - Hubs that could not be reached. - """ - - @property - def raw_page(self): - return self - - route_tables: MutableSequence['RouteTable'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='RouteTable', - ) - next_page_token: str = proto.Field( - proto.STRING, - number=2, - ) - unreachable: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=3, - ) - - -class ListGroupsRequest(proto.Message): - r"""Request for - [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] - method. - - Attributes: - parent (str): - Required. The parent resource's name. - page_size (int): - The maximum number of results to return per - page. - page_token (str): - The page token. - filter (str): - An expression that filters the list of - results. - order_by (str): - Sort the results by a certain order. - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - page_size: int = proto.Field( - proto.INT32, - number=2, - ) - page_token: str = proto.Field( - proto.STRING, - number=3, - ) - filter: str = proto.Field( - proto.STRING, - number=4, - ) - order_by: str = proto.Field( - proto.STRING, - number=5, - ) - - -class ListGroupsResponse(proto.Message): - r"""Response for - [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] - method. - - Attributes: - groups (MutableSequence[google.cloud.networkconnectivity_v1.types.Group]): - The requested groups. - next_page_token (str): - The token for the next page of the response. To see more - results, use this value as the page_token for your next - request. If this value is empty, there are no more results. - unreachable (MutableSequence[str]): - Hubs that could not be reached. - """ - - @property - def raw_page(self): - return self - - groups: MutableSequence['Group'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='Group', - ) - next_page_token: str = proto.Field( - proto.STRING, - number=2, - ) - unreachable: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=3, - ) - - -class LinkedVpnTunnels(proto.Message): - r"""A collection of Cloud VPN tunnel resources. These resources - should be redundant HA VPN tunnels that all advertise the same - prefixes to Google Cloud. Alternatively, in a passive/active - configuration, all tunnels should be capable of advertising the - same prefixes. - - Attributes: - uris (MutableSequence[str]): - The URIs of linked VPN tunnel resources. - site_to_site_data_transfer (bool): - A value that controls whether site-to-site data transfer is - enabled for these resources. Data transfer is available only - in `supported - locations `__. - vpc_network (str): - Output only. The VPC network where these VPN - tunnels are located. - """ - - uris: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=1, - ) - site_to_site_data_transfer: bool = proto.Field( - proto.BOOL, - number=2, - ) - vpc_network: str = proto.Field( - proto.STRING, - number=3, - ) - - -class LinkedInterconnectAttachments(proto.Message): - r"""A collection of VLAN attachment resources. These resources - should be redundant attachments that all advertise the same - prefixes to Google Cloud. Alternatively, in active/passive - configurations, all attachments should be capable of advertising - the same prefixes. - - Attributes: - uris (MutableSequence[str]): - The URIs of linked interconnect attachment - resources - site_to_site_data_transfer (bool): - A value that controls whether site-to-site data transfer is - enabled for these resources. Data transfer is available only - in `supported - locations `__. - vpc_network (str): - Output only. The VPC network where these VLAN - attachments are located. - """ - - uris: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=1, - ) - site_to_site_data_transfer: bool = proto.Field( - proto.BOOL, - number=2, - ) - vpc_network: str = proto.Field( - proto.STRING, - number=3, - ) - - -class LinkedRouterApplianceInstances(proto.Message): - r"""A collection of router appliance instances. If you configure - multiple router appliance instances to receive data from the - same set of sites outside of Google Cloud, we recommend that you - associate those instances with the same spoke. - - Attributes: - instances (MutableSequence[google.cloud.networkconnectivity_v1.types.RouterApplianceInstance]): - The list of router appliance instances. - site_to_site_data_transfer (bool): - A value that controls whether site-to-site data transfer is - enabled for these resources. Data transfer is available only - in `supported - locations `__. - vpc_network (str): - Output only. The VPC network where these - router appliance instances are located. - """ - - instances: MutableSequence['RouterApplianceInstance'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='RouterApplianceInstance', - ) - site_to_site_data_transfer: bool = proto.Field( - proto.BOOL, - number=2, - ) - vpc_network: str = proto.Field( - proto.STRING, - number=3, - ) - - -class LinkedVpcNetwork(proto.Message): - r"""An existing VPC network. - - Attributes: - uri (str): - Required. The URI of the VPC network - resource. - exclude_export_ranges (MutableSequence[str]): - Optional. IP ranges encompassing the subnets - to be excluded from peering. - """ - - uri: str = proto.Field( - proto.STRING, - number=1, - ) - exclude_export_ranges: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=2, - ) - - -class RouterApplianceInstance(proto.Message): - r"""A router appliance instance is a Compute Engine virtual - machine (VM) instance that acts as a BGP speaker. A router - appliance instance is specified by the URI of the VM and the - internal IP address of one of the VM's network interfaces. - - Attributes: - virtual_machine (str): - The URI of the VM. - ip_address (str): - The IP address on the VM to use for peering. - """ - - virtual_machine: str = proto.Field( - proto.STRING, - number=1, - ) - ip_address: str = proto.Field( - proto.STRING, - number=3, - ) - - -class LocationMetadata(proto.Message): - r"""Metadata about locations - - Attributes: - location_features (MutableSequence[google.cloud.networkconnectivity_v1.types.LocationFeature]): - List of supported features - """ - - location_features: MutableSequence['LocationFeature'] = proto.RepeatedField( - proto.ENUM, - number=1, - enum='LocationFeature', - ) - - -class NextHopVpcNetwork(proto.Message): - r""" - - Attributes: - uri (str): - The URI of the VPC network resource - """ - - uri: str = proto.Field( - proto.STRING, - number=1, - ) - - -class SpokeSummary(proto.Message): - r"""Summarizes information about the spokes associated with a - hub. The summary includes a count of spokes according to type - and according to state. If any spokes are inactive, the summary - also lists the reasons they are inactive, including a count for - each reason. - - Attributes: - spoke_type_counts (MutableSequence[google.cloud.networkconnectivity_v1.types.SpokeSummary.SpokeTypeCount]): - Output only. Counts the number of spokes of - each type that are associated with a specific - hub. - spoke_state_counts (MutableSequence[google.cloud.networkconnectivity_v1.types.SpokeSummary.SpokeStateCount]): - Output only. Counts the number of spokes that - are in each state and associated with a given - hub. - spoke_state_reason_counts (MutableSequence[google.cloud.networkconnectivity_v1.types.SpokeSummary.SpokeStateReasonCount]): - Output only. Counts the number of spokes that - are inactive for each possible reason and - associated with a given hub. - """ - - class SpokeTypeCount(proto.Message): - r"""The number of spokes of a given type that are associated - with a specific hub. The type indicates what kind of resource is - associated with the spoke. - - Attributes: - spoke_type (google.cloud.networkconnectivity_v1.types.SpokeType): - Output only. The type of the spokes. - count (int): - Output only. The total number of spokes of - this type that are associated with the hub. - """ - - spoke_type: 'SpokeType' = proto.Field( - proto.ENUM, - number=1, - enum='SpokeType', - ) - count: int = proto.Field( - proto.INT64, - number=2, - ) - - class SpokeStateCount(proto.Message): - r"""The number of spokes that are in a particular state - and associated with a given hub. - - Attributes: - state (google.cloud.networkconnectivity_v1.types.State): - Output only. The state of the spokes. - count (int): - Output only. The total number of spokes that - are in this state and associated with a given - hub. - """ - - state: 'State' = proto.Field( - proto.ENUM, - number=1, - enum='State', - ) - count: int = proto.Field( - proto.INT64, - number=2, - ) - - class SpokeStateReasonCount(proto.Message): - r"""The number of spokes in the hub that are inactive for this - reason. - - Attributes: - state_reason_code (google.cloud.networkconnectivity_v1.types.Spoke.StateReason.Code): - Output only. The reason that a spoke is - inactive. - count (int): - Output only. The total number of spokes that - are inactive for a particular reason and - associated with a given hub. - """ - - state_reason_code: 'Spoke.StateReason.Code' = proto.Field( - proto.ENUM, - number=1, - enum='Spoke.StateReason.Code', - ) - count: int = proto.Field( - proto.INT64, - number=2, - ) - - spoke_type_counts: MutableSequence[SpokeTypeCount] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message=SpokeTypeCount, - ) - spoke_state_counts: MutableSequence[SpokeStateCount] = proto.RepeatedField( - proto.MESSAGE, - number=2, - message=SpokeStateCount, - ) - spoke_state_reason_counts: MutableSequence[SpokeStateReasonCount] = proto.RepeatedField( - proto.MESSAGE, - number=3, - message=SpokeStateReasonCount, - ) - - -class GetGroupRequest(proto.Message): - r"""The request for - [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. - - Attributes: - name (str): - Required. The name of the route table - resource. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - - -__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/policy_based_routing.py b/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/policy_based_routing.py deleted file mode 100644 index 61d9daa0dc00..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/google/cloud/networkconnectivity_v1/types/policy_based_routing.py +++ /dev/null @@ -1,530 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from __future__ import annotations - -from typing import MutableMapping, MutableSequence - -import proto # type: ignore - -from google.protobuf import timestamp_pb2 # type: ignore - - -__protobuf__ = proto.module( - package='google.cloud.networkconnectivity.v1', - manifest={ - 'PolicyBasedRoute', - 'ListPolicyBasedRoutesRequest', - 'ListPolicyBasedRoutesResponse', - 'GetPolicyBasedRouteRequest', - 'CreatePolicyBasedRouteRequest', - 'DeletePolicyBasedRouteRequest', - }, -) - - -class PolicyBasedRoute(proto.Message): - r"""Policy Based Routes (PBR) are more powerful routes that - allows GCP customers to route their L4 network traffic based on - not just destination IP, but also source IP, protocol and more. - A PBR always take precedence when it conflicts with other types - of routes. - Next id: 22 - - This message has `oneof`_ fields (mutually exclusive fields). - For each oneof, at most one member field can be set at the same time. - Setting any member of the oneof automatically clears all other - members. - - .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields - - Attributes: - virtual_machine (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.VirtualMachine): - Optional. VM instances to which this policy - based route applies to. - - This field is a member of `oneof`_ ``target``. - interconnect_attachment (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.InterconnectAttachment): - Optional. The interconnect attachments to - which this route applies to. - - This field is a member of `oneof`_ ``target``. - next_hop_ilb_ip (str): - Optional. The IP of a global access enabled L4 ILB that - should be the next hop to handle matching packets. For this - version, only next_hop_ilb_ip is supported. - - This field is a member of `oneof`_ ``next_hop``. - next_hop_other_routes (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.OtherRoutes): - Optional. Other routes that will be - referenced to determine the next hop of the - packet. - - This field is a member of `oneof`_ ``next_hop``. - name (str): - Immutable. A unique name of the resource in the form of - ``projects/{project_number}/locations/global/PolicyBasedRoutes/{policy_based_route_id}`` - create_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. Time when the PolicyBasedRoute - was created. - update_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. Time when the PolicyBasedRoute - was updated. - labels (MutableMapping[str, str]): - User-defined labels. - description (str): - Optional. An optional description of this - resource. Provide this field when you create the - resource. - network (str): - Required. Fully-qualified URL of the network - that this route applies to. e.g. - projects/my-project/global/networks/my-network. - filter (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Filter): - Required. The filter to match L4 traffic. - priority (int): - Optional. The priority of this policy based - route. Priority is used to break ties in cases - where there are more than one matching policy - based routes found. In cases where multiple - policy based routes are matched, the one with - the lowest-numbered priority value wins. The - default value is - 1000. The priority value must be from 1 to - 65535, inclusive. - warnings (MutableSequence[google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Warnings]): - Output only. If potential misconfigurations - are detected for this route, this field will be - populated with warning messages. - self_link (str): - Output only. Server-defined fully-qualified - URL for this resource. - kind (str): - Output only. Type of this resource. Always - networkconnectivity#policyBasedRoute for Policy - Based Route resources. - """ - class OtherRoutes(proto.Enum): - r"""The other routing cases. - - Values: - OTHER_ROUTES_UNSPECIFIED (0): - Default value. - DEFAULT_ROUTING (1): - Use the routes from the default routing - tables (system-generated routes, custom routes, - peering route) to determine the next hop. This - will effectively exclude matching packets being - applied on other PBRs with a lower priority. - """ - OTHER_ROUTES_UNSPECIFIED = 0 - DEFAULT_ROUTING = 1 - - class VirtualMachine(proto.Message): - r"""VM instances to which this policy based route applies to. - - Attributes: - tags (MutableSequence[str]): - Optional. A list of VM instance tags to which - this policy based route applies to. VM instances - that have ANY of tags specified here will - install this PBR. - """ - - tags: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=1, - ) - - class InterconnectAttachment(proto.Message): - r"""InterconnectAttachment to which this route applies to. - - Attributes: - region (str): - Optional. Cloud region to install this policy based route on - interconnect attachment. Use ``all`` to install it on all - interconnect attachments. - """ - - region: str = proto.Field( - proto.STRING, - number=1, - ) - - class Filter(proto.Message): - r"""Filter matches L4 traffic. - - Attributes: - ip_protocol (str): - Optional. The IP protocol that this policy - based route applies to. Valid values are 'TCP', - 'UDP', and 'ALL'. Default is 'ALL'. - src_range (str): - Optional. The source IP range of outgoing - packets that this policy based route applies to. - Default is "0.0.0.0/0" if protocol version is - IPv4. - dest_range (str): - Optional. The destination IP range of - outgoing packets that this policy based route - applies to. Default is "0.0.0.0/0" if protocol - version is IPv4. - protocol_version (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Filter.ProtocolVersion): - Required. Internet protocol versions this - policy based route applies to. For this version, - only IPV4 is supported. - """ - class ProtocolVersion(proto.Enum): - r"""The internet protocol version. - - Values: - PROTOCOL_VERSION_UNSPECIFIED (0): - Default value. - IPV4 (1): - The PBR is for IPv4 internet protocol - traffic. - """ - PROTOCOL_VERSION_UNSPECIFIED = 0 - IPV4 = 1 - - ip_protocol: str = proto.Field( - proto.STRING, - number=1, - ) - src_range: str = proto.Field( - proto.STRING, - number=2, - ) - dest_range: str = proto.Field( - proto.STRING, - number=3, - ) - protocol_version: 'PolicyBasedRoute.Filter.ProtocolVersion' = proto.Field( - proto.ENUM, - number=6, - enum='PolicyBasedRoute.Filter.ProtocolVersion', - ) - - class Warnings(proto.Message): - r"""Informational warning message. - - Attributes: - code (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Warnings.Code): - Output only. A warning code, if applicable. - data (MutableMapping[str, str]): - Output only. Metadata about this warning in - key: value format. The key should provides more - detail on the warning being returned. For - example, for warnings where there are no results - in a list request for a particular zone, this - key might be scope and the key value might be - the zone name. Other examples might be a key - indicating a deprecated resource and a suggested - replacement. - warning_message (str): - Output only. A human-readable description of - the warning code. - """ - class Code(proto.Enum): - r"""Warning code for Policy Based Routing. Expect to add values - in the future. - - Values: - WARNING_UNSPECIFIED (0): - Default value. - RESOURCE_NOT_ACTIVE (1): - The policy based route is not active and - functioning. Common causes are the dependent - network was deleted or the resource project was - turned off. - RESOURCE_BEING_MODIFIED (2): - The policy based route is being modified - (e.g. created/deleted) at this time. - """ - WARNING_UNSPECIFIED = 0 - RESOURCE_NOT_ACTIVE = 1 - RESOURCE_BEING_MODIFIED = 2 - - code: 'PolicyBasedRoute.Warnings.Code' = proto.Field( - proto.ENUM, - number=1, - enum='PolicyBasedRoute.Warnings.Code', - ) - data: MutableMapping[str, str] = proto.MapField( - proto.STRING, - proto.STRING, - number=2, - ) - warning_message: str = proto.Field( - proto.STRING, - number=3, - ) - - virtual_machine: VirtualMachine = proto.Field( - proto.MESSAGE, - number=18, - oneof='target', - message=VirtualMachine, - ) - interconnect_attachment: InterconnectAttachment = proto.Field( - proto.MESSAGE, - number=9, - oneof='target', - message=InterconnectAttachment, - ) - next_hop_ilb_ip: str = proto.Field( - proto.STRING, - number=12, - oneof='next_hop', - ) - next_hop_other_routes: OtherRoutes = proto.Field( - proto.ENUM, - number=21, - oneof='next_hop', - enum=OtherRoutes, - ) - name: str = proto.Field( - proto.STRING, - number=1, - ) - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=2, - message=timestamp_pb2.Timestamp, - ) - update_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=3, - message=timestamp_pb2.Timestamp, - ) - labels: MutableMapping[str, str] = proto.MapField( - proto.STRING, - proto.STRING, - number=4, - ) - description: str = proto.Field( - proto.STRING, - number=5, - ) - network: str = proto.Field( - proto.STRING, - number=6, - ) - filter: Filter = proto.Field( - proto.MESSAGE, - number=10, - message=Filter, - ) - priority: int = proto.Field( - proto.INT32, - number=11, - ) - warnings: MutableSequence[Warnings] = proto.RepeatedField( - proto.MESSAGE, - number=14, - message=Warnings, - ) - self_link: str = proto.Field( - proto.STRING, - number=15, - ) - kind: str = proto.Field( - proto.STRING, - number=16, - ) - - -class ListPolicyBasedRoutesRequest(proto.Message): - r"""Request for [PolicyBasedRouting.ListPolicyBasedRoutes][] method. - - Attributes: - parent (str): - Required. The parent resource's name. - page_size (int): - The maximum number of results per page that - should be returned. - page_token (str): - The page token. - filter (str): - A filter expression that filters the results - listed in the response. - order_by (str): - Sort the results by a certain order. - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - page_size: int = proto.Field( - proto.INT32, - number=2, - ) - page_token: str = proto.Field( - proto.STRING, - number=3, - ) - filter: str = proto.Field( - proto.STRING, - number=4, - ) - order_by: str = proto.Field( - proto.STRING, - number=5, - ) - - -class ListPolicyBasedRoutesResponse(proto.Message): - r"""Response for [PolicyBasedRouting.ListPolicyBasedRoutes][] method. - - Attributes: - policy_based_routes (MutableSequence[google.cloud.networkconnectivity_v1.types.PolicyBasedRoute]): - Policy based routes to be returned. - next_page_token (str): - The next pagination token in the List response. It should be - used as page_token for the following request. An empty value - means no more result. - unreachable (MutableSequence[str]): - Locations that could not be reached. - """ - - @property - def raw_page(self): - return self - - policy_based_routes: MutableSequence['PolicyBasedRoute'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='PolicyBasedRoute', - ) - next_page_token: str = proto.Field( - proto.STRING, - number=2, - ) - unreachable: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=3, - ) - - -class GetPolicyBasedRouteRequest(proto.Message): - r"""Request for [PolicyBasedRouting.GetPolicyBasedRoute][] method. - - Attributes: - name (str): - Required. Name of the PolicyBasedRoute - resource to get. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - - -class CreatePolicyBasedRouteRequest(proto.Message): - r"""Request for [PolicyBasedRouting.CreatePolicyBasedRoute][] method. - - Attributes: - parent (str): - Required. The parent resource's name of the - PolicyBasedRoute. - policy_based_route_id (str): - Required. Unique id for the Policy Based - Route to create. - policy_based_route (google.cloud.networkconnectivity_v1.types.PolicyBasedRoute): - Required. Initial values for a new Policy - Based Route. - request_id (str): - Optional. 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. The server will guarantee that - for at least 60 minutes since the first request. - - 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). - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - policy_based_route_id: str = proto.Field( - proto.STRING, - number=2, - ) - policy_based_route: 'PolicyBasedRoute' = proto.Field( - proto.MESSAGE, - number=3, - message='PolicyBasedRoute', - ) - request_id: str = proto.Field( - proto.STRING, - number=4, - ) - - -class DeletePolicyBasedRouteRequest(proto.Message): - r"""Request for [PolicyBasedRouting.DeletePolicyBasedRoute][] method. - - Attributes: - name (str): - Required. Name of the PolicyBasedRoute - resource to delete. - request_id (str): - Optional. 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. The server will guarantee that - for at least 60 minutes after the first request. - - 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). - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - request_id: str = proto.Field( - proto.STRING, - number=2, - ) - - -__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/mypy.ini b/owl-bot-staging/google-cloud-network-connectivity/v1/mypy.ini deleted file mode 100644 index 574c5aed394b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/mypy.ini +++ /dev/null @@ -1,3 +0,0 @@ -[mypy] -python_version = 3.7 -namespace_packages = True diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/noxfile.py b/owl-bot-staging/google-cloud-network-connectivity/v1/noxfile.py deleted file mode 100644 index 07f82ed0eb35..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/noxfile.py +++ /dev/null @@ -1,184 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import os -import pathlib -import shutil -import subprocess -import sys - - -import nox # type: ignore - -ALL_PYTHON = [ - "3.7", - "3.8", - "3.9", - "3.10", - "3.11", -] - -CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute() - -LOWER_BOUND_CONSTRAINTS_FILE = CURRENT_DIRECTORY / "constraints.txt" -PACKAGE_NAME = subprocess.check_output([sys.executable, "setup.py", "--name"], encoding="utf-8") - -BLACK_VERSION = "black==22.3.0" -BLACK_PATHS = ["docs", "google", "tests", "samples", "noxfile.py", "setup.py"] -DEFAULT_PYTHON_VERSION = "3.11" - -nox.sessions = [ - "unit", - "cover", - "mypy", - "check_lower_bounds" - # exclude update_lower_bounds from default - "docs", - "blacken", - "lint", - "lint_setup_py", -] - -@nox.session(python=ALL_PYTHON) -def unit(session): - """Run the unit test suite.""" - - session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"') - session.install('-e', '.') - - session.run( - 'py.test', - '--quiet', - '--cov=google/cloud/networkconnectivity_v1/', - '--cov=tests/', - '--cov-config=.coveragerc', - '--cov-report=term', - '--cov-report=html', - os.path.join('tests', 'unit', ''.join(session.posargs)) - ) - - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def cover(session): - """Run the final coverage report. - This outputs the coverage report aggregating coverage from the unit - test runs (not system test runs), and then erases coverage data. - """ - session.install("coverage", "pytest-cov") - session.run("coverage", "report", "--show-missing", "--fail-under=100") - - session.run("coverage", "erase") - - -@nox.session(python=ALL_PYTHON) -def mypy(session): - """Run the type checker.""" - session.install( - 'mypy', - 'types-requests', - 'types-protobuf' - ) - session.install('.') - session.run( - 'mypy', - '--explicit-package-bases', - 'google', - ) - - -@nox.session -def update_lower_bounds(session): - """Update lower bounds in constraints.txt to match setup.py""" - session.install('google-cloud-testutils') - session.install('.') - - session.run( - 'lower-bound-checker', - 'update', - '--package-name', - PACKAGE_NAME, - '--constraints-file', - str(LOWER_BOUND_CONSTRAINTS_FILE), - ) - - -@nox.session -def check_lower_bounds(session): - """Check lower bounds in setup.py are reflected in constraints file""" - session.install('google-cloud-testutils') - session.install('.') - - session.run( - 'lower-bound-checker', - 'check', - '--package-name', - PACKAGE_NAME, - '--constraints-file', - str(LOWER_BOUND_CONSTRAINTS_FILE), - ) - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def docs(session): - """Build the docs for this library.""" - - session.install("-e", ".") - session.install("sphinx==7.0.1", "alabaster", "recommonmark") - - shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) - session.run( - "sphinx-build", - "-W", # warnings as errors - "-T", # show full traceback on exception - "-N", # no colors - "-b", - "html", - "-d", - os.path.join("docs", "_build", "doctrees", ""), - os.path.join("docs", ""), - os.path.join("docs", "_build", "html", ""), - ) - - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def lint(session): - """Run linters. - - Returns a failure if the linters find linting errors or sufficiently - serious code quality issues. - """ - session.install("flake8", BLACK_VERSION) - session.run( - "black", - "--check", - *BLACK_PATHS, - ) - session.run("flake8", "google", "tests", "samples") - - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def blacken(session): - """Run black. Format code to uniform standard.""" - session.install(BLACK_VERSION) - session.run( - "black", - *BLACK_PATHS, - ) - - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def lint_setup_py(session): - """Verify that setup.py is valid (including RST check).""" - session.install("docutils", "pygments") - session.run("python", "setup.py", "check", "--restructuredtext", "--strict") diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_async.py deleted file mode 100644 index b99a39294a99..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_async.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreateHub -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_CreateHub_async] -# 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 networkconnectivity_v1 - - -async def sample_create_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.CreateHubRequest( - parent="parent_value", - hub_id="hub_id_value", - ) - - # Make the request - operation = client.create_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_CreateHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_sync.py deleted file mode 100644 index 59c05e9b8189..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_hub_sync.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreateHub -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_CreateHub_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 networkconnectivity_v1 - - -def sample_create_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.CreateHubRequest( - parent="parent_value", - hub_id="hub_id_value", - ) - - # Make the request - operation = client.create_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_CreateHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_async.py deleted file mode 100644 index 1efddf3e82ad..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_async.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreateSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_CreateSpoke_async] -# 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 networkconnectivity_v1 - - -async def sample_create_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.CreateSpokeRequest( - parent="parent_value", - spoke_id="spoke_id_value", - ) - - # Make the request - operation = client.create_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_CreateSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_sync.py deleted file mode 100644 index 9429b78dc9a4..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_create_spoke_sync.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreateSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_CreateSpoke_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 networkconnectivity_v1 - - -def sample_create_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.CreateSpokeRequest( - parent="parent_value", - spoke_id="spoke_id_value", - ) - - # Make the request - operation = client.create_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_CreateSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_async.py deleted file mode 100644 index 1867a72ca9ae..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_async.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeleteHub -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_DeleteHub_async] -# 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 networkconnectivity_v1 - - -async def sample_delete_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeleteHubRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_DeleteHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_sync.py deleted file mode 100644 index 22ffa1caa7a6..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_hub_sync.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeleteHub -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_DeleteHub_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 networkconnectivity_v1 - - -def sample_delete_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeleteHubRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_DeleteHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_async.py deleted file mode 100644 index 69a63469152d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_async.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeleteSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_DeleteSpoke_async] -# 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 networkconnectivity_v1 - - -async def sample_delete_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeleteSpokeRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_DeleteSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py deleted file mode 100644 index 500c035bc0b6..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeleteSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_DeleteSpoke_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 networkconnectivity_v1 - - -def sample_delete_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeleteSpokeRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_DeleteSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_async.py deleted file mode 100644 index ea6cb94ccacc..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_async.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetHub -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_GetHub_async] -# 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 networkconnectivity_v1 - - -async def sample_get_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetHubRequest( - name="name_value", - ) - - # Make the request - response = await client.get_hub(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_GetHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_sync.py deleted file mode 100644 index ec41ace1ed51..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_hub_sync.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetHub -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_GetHub_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 networkconnectivity_v1 - - -def sample_get_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetHubRequest( - name="name_value", - ) - - # Make the request - response = client.get_hub(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_GetHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_async.py deleted file mode 100644 index a627d027ecfa..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_async.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_GetSpoke_async] -# 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 networkconnectivity_v1 - - -async def sample_get_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetSpokeRequest( - name="name_value", - ) - - # Make the request - response = await client.get_spoke(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_GetSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_sync.py deleted file mode 100644 index 0e839df867d5..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_spoke_sync.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_GetSpoke_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 networkconnectivity_v1 - - -def sample_get_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetSpokeRequest( - name="name_value", - ) - - # Make the request - response = client.get_spoke(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_GetSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_async.py deleted file mode 100644 index 203420964803..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_async.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListHubs -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_ListHubs_async] -# 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 networkconnectivity_v1 - - -async def sample_list_hubs(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListHubsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_hubs(request=request) - - # Handle the response - async for response in page_result: - print(response) - -# [END networkconnectivity_v1_generated_HubService_ListHubs_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_sync.py deleted file mode 100644 index 7daccc0dd622..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hubs_sync.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListHubs -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_ListHubs_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 networkconnectivity_v1 - - -def sample_list_hubs(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListHubsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_hubs(request=request) - - # Handle the response - for response in page_result: - print(response) - -# [END networkconnectivity_v1_generated_HubService_ListHubs_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_async.py deleted file mode 100644 index 9001ddfa66ec..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_async.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListSpokes -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_ListSpokes_async] -# 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 networkconnectivity_v1 - - -async def sample_list_spokes(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListSpokesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_spokes(request=request) - - # Handle the response - async for response in page_result: - print(response) - -# [END networkconnectivity_v1_generated_HubService_ListSpokes_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_sync.py deleted file mode 100644 index 3168b4d12fcc..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_spokes_sync.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListSpokes -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_ListSpokes_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 networkconnectivity_v1 - - -def sample_list_spokes(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListSpokesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_spokes(request=request) - - # Handle the response - for response in page_result: - print(response) - -# [END networkconnectivity_v1_generated_HubService_ListSpokes_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_async.py deleted file mode 100644 index 58c35b5b6a0a..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_async.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 UpdateHub -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_UpdateHub_async] -# 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 networkconnectivity_v1 - - -async def sample_update_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.UpdateHubRequest( - ) - - # Make the request - operation = client.update_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_UpdateHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_sync.py deleted file mode 100644 index 0859567be439..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_hub_sync.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 UpdateHub -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_UpdateHub_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 networkconnectivity_v1 - - -def sample_update_hub(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.UpdateHubRequest( - ) - - # Make the request - operation = client.update_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_UpdateHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_async.py deleted file mode 100644 index c736b6f4a756..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_async.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 UpdateSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_UpdateSpoke_async] -# 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 networkconnectivity_v1 - - -async def sample_update_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.UpdateSpokeRequest( - ) - - # Make the request - operation = client.update_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_UpdateSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_sync.py deleted file mode 100644 index 304124b88612..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_update_spoke_sync.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 UpdateSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_HubService_UpdateSpoke_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 networkconnectivity_v1 - - -def sample_update_spoke(): - # Create a client - client = networkconnectivity_v1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.UpdateSpokeRequest( - ) - - # Make the request - operation = client.update_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_HubService_UpdateSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py deleted file mode 100644 index ec03a9d21dbe..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreatePolicyBasedRoute -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_async] -# 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 networkconnectivity_v1 - - -async def sample_create_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() - - # Initialize request argument(s) - policy_based_route = networkconnectivity_v1.PolicyBasedRoute() - policy_based_route.next_hop_ilb_ip = "next_hop_ilb_ip_value" - policy_based_route.network = "network_value" - policy_based_route.filter.protocol_version = "IPV4" - - request = networkconnectivity_v1.CreatePolicyBasedRouteRequest( - parent="parent_value", - policy_based_route_id="policy_based_route_id_value", - policy_based_route=policy_based_route, - ) - - # Make the request - operation = client.create_policy_based_route(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py deleted file mode 100644 index 9bd36fd03fcc..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreatePolicyBasedRoute -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_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 networkconnectivity_v1 - - -def sample_create_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() - - # Initialize request argument(s) - policy_based_route = networkconnectivity_v1.PolicyBasedRoute() - policy_based_route.next_hop_ilb_ip = "next_hop_ilb_ip_value" - policy_based_route.network = "network_value" - policy_based_route.filter.protocol_version = "IPV4" - - request = networkconnectivity_v1.CreatePolicyBasedRouteRequest( - parent="parent_value", - policy_based_route_id="policy_based_route_id_value", - policy_based_route=policy_based_route, - ) - - # Make the request - operation = client.create_policy_based_route(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py deleted file mode 100644 index 0524c9e42d33..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeletePolicyBasedRoute -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_async] -# 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 networkconnectivity_v1 - - -async def sample_delete_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeletePolicyBasedRouteRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_policy_based_route(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py deleted file mode 100644 index d4292eee935c..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeletePolicyBasedRoute -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_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 networkconnectivity_v1 - - -def sample_delete_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.DeletePolicyBasedRouteRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_policy_based_route(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py deleted file mode 100644 index dcd1c57e3357..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetPolicyBasedRoute -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_async] -# 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 networkconnectivity_v1 - - -async def sample_get_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetPolicyBasedRouteRequest( - name="name_value", - ) - - # Make the request - response = await client.get_policy_based_route(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py deleted file mode 100644 index 8bd912ececd2..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetPolicyBasedRoute -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_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 networkconnectivity_v1 - - -def sample_get_policy_based_route(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.GetPolicyBasedRouteRequest( - name="name_value", - ) - - # Make the request - response = client.get_policy_based_route(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py deleted file mode 100644 index bb3be38f91db..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListPolicyBasedRoutes -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_async] -# 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 networkconnectivity_v1 - - -async def sample_list_policy_based_routes(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListPolicyBasedRoutesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_policy_based_routes(request=request) - - # Handle the response - async for response in page_result: - print(response) - -# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py deleted file mode 100644 index 59b09ecf0dfa..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListPolicyBasedRoutes -# 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-network-connectivity - - -# [START networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_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 networkconnectivity_v1 - - -def sample_list_policy_based_routes(): - # Create a client - client = networkconnectivity_v1.PolicyBasedRoutingServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1.ListPolicyBasedRoutesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_policy_based_routes(request=request) - - # Handle the response - for response in page_result: - print(response) - -# [END networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json b/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json deleted file mode 100644 index 62ba18e54b67..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json +++ /dev/null @@ -1,3798 +0,0 @@ -{ - "clientLibrary": { - "apis": [ - { - "id": "google.cloud.networkconnectivity.v1", - "version": "v1" - } - ], - "language": "PYTHON", - "name": "google-cloud-network-connectivity", - "version": "0.1.0" - }, - "snippets": [ - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.accept_hub_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "AcceptHubSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "spoke_uri", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "accept_hub_spoke" - }, - "description": "Sample for AcceptHubSpoke", - "file": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_AcceptHubSpoke_async", - "segments": [ - { - "end": 56, - "start": 27, - "type": "FULL" - }, - { - "end": 56, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 46, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 53, - "start": 47, - "type": "REQUEST_EXECUTION" - }, - { - "end": 57, - "start": 54, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.accept_hub_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "AcceptHubSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "spoke_uri", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "accept_hub_spoke" - }, - "description": "Sample for AcceptHubSpoke", - "file": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_AcceptHubSpoke_sync", - "segments": [ - { - "end": 56, - "start": 27, - "type": "FULL" - }, - { - "end": 56, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 46, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 53, - "start": 47, - "type": "REQUEST_EXECUTION" - }, - { - "end": 57, - "start": 54, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.create_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.CreateHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "CreateHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.CreateHubRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "hub", - "type": "google.cloud.networkconnectivity_v1.types.Hub" - }, - { - "name": "hub_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "create_hub" - }, - "description": "Sample for CreateHub", - "file": "networkconnectivity_v1_generated_hub_service_create_hub_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_CreateHub_async", - "segments": [ - { - "end": 56, - "start": 27, - "type": "FULL" - }, - { - "end": 56, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 46, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 53, - "start": 47, - "type": "REQUEST_EXECUTION" - }, - { - "end": 57, - "start": 54, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_create_hub_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.create_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.CreateHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "CreateHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.CreateHubRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "hub", - "type": "google.cloud.networkconnectivity_v1.types.Hub" - }, - { - "name": "hub_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "create_hub" - }, - "description": "Sample for CreateHub", - "file": "networkconnectivity_v1_generated_hub_service_create_hub_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_CreateHub_sync", - "segments": [ - { - "end": 56, - "start": 27, - "type": "FULL" - }, - { - "end": 56, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 46, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 53, - "start": 47, - "type": "REQUEST_EXECUTION" - }, - { - "end": 57, - "start": 54, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_create_hub_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.create_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.CreateSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "CreateSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.CreateSpokeRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "spoke", - "type": "google.cloud.networkconnectivity_v1.types.Spoke" - }, - { - "name": "spoke_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "create_spoke" - }, - "description": "Sample for CreateSpoke", - "file": "networkconnectivity_v1_generated_hub_service_create_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_CreateSpoke_async", - "segments": [ - { - "end": 56, - "start": 27, - "type": "FULL" - }, - { - "end": 56, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 46, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 53, - "start": 47, - "type": "REQUEST_EXECUTION" - }, - { - "end": 57, - "start": 54, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_create_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.create_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.CreateSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "CreateSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.CreateSpokeRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "spoke", - "type": "google.cloud.networkconnectivity_v1.types.Spoke" - }, - { - "name": "spoke_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "create_spoke" - }, - "description": "Sample for CreateSpoke", - "file": "networkconnectivity_v1_generated_hub_service_create_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_CreateSpoke_sync", - "segments": [ - { - "end": 56, - "start": 27, - "type": "FULL" - }, - { - "end": 56, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 46, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 53, - "start": 47, - "type": "REQUEST_EXECUTION" - }, - { - "end": 57, - "start": 54, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_create_spoke_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.delete_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.DeleteHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "DeleteHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.DeleteHubRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "delete_hub" - }, - "description": "Sample for DeleteHub", - "file": "networkconnectivity_v1_generated_hub_service_delete_hub_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_DeleteHub_async", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_delete_hub_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.delete_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.DeleteHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "DeleteHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.DeleteHubRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "delete_hub" - }, - "description": "Sample for DeleteHub", - "file": "networkconnectivity_v1_generated_hub_service_delete_hub_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_DeleteHub_sync", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_delete_hub_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.delete_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.DeleteSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "DeleteSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "delete_spoke" - }, - "description": "Sample for DeleteSpoke", - "file": "networkconnectivity_v1_generated_hub_service_delete_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_DeleteSpoke_async", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_delete_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.delete_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.DeleteSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "DeleteSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "delete_spoke" - }, - "description": "Sample for DeleteSpoke", - "file": "networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_DeleteSpoke_sync", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_delete_spoke_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_group", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetGroup", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetGroup" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetGroupRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.Group", - "shortName": "get_group" - }, - "description": "Sample for GetGroup", - "file": "networkconnectivity_v1_generated_hub_service_get_group_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetGroup_async", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_group_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_group", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetGroup", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetGroup" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetGroupRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.Group", - "shortName": "get_group" - }, - "description": "Sample for GetGroup", - "file": "networkconnectivity_v1_generated_hub_service_get_group_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetGroup_sync", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_group_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetHubRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.Hub", - "shortName": "get_hub" - }, - "description": "Sample for GetHub", - "file": "networkconnectivity_v1_generated_hub_service_get_hub_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetHub_async", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_hub_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetHubRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.Hub", - "shortName": "get_hub" - }, - "description": "Sample for GetHub", - "file": "networkconnectivity_v1_generated_hub_service_get_hub_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetHub_sync", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_hub_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_route_table", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRouteTable", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetRouteTable" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetRouteTableRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.RouteTable", - "shortName": "get_route_table" - }, - "description": "Sample for GetRouteTable", - "file": "networkconnectivity_v1_generated_hub_service_get_route_table_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetRouteTable_async", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_route_table_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_route_table", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRouteTable", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetRouteTable" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetRouteTableRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.RouteTable", - "shortName": "get_route_table" - }, - "description": "Sample for GetRouteTable", - "file": "networkconnectivity_v1_generated_hub_service_get_route_table_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetRouteTable_sync", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_route_table_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_route", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRoute", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetRoute" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetRouteRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.Route", - "shortName": "get_route" - }, - "description": "Sample for GetRoute", - "file": "networkconnectivity_v1_generated_hub_service_get_route_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetRoute_async", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_route_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_route", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRoute", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetRoute" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetRouteRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.Route", - "shortName": "get_route" - }, - "description": "Sample for GetRoute", - "file": "networkconnectivity_v1_generated_hub_service_get_route_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetRoute_sync", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_route_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.Spoke", - "shortName": "get_spoke" - }, - "description": "Sample for GetSpoke", - "file": "networkconnectivity_v1_generated_hub_service_get_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetSpoke_async", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "GetSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.Spoke", - "shortName": "get_spoke" - }, - "description": "Sample for GetSpoke", - "file": "networkconnectivity_v1_generated_hub_service_get_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetSpoke_sync", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_get_spoke_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_groups", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListGroups", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListGroups" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListGroupsRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsAsyncPager", - "shortName": "list_groups" - }, - "description": "Sample for ListGroups", - "file": "networkconnectivity_v1_generated_hub_service_list_groups_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListGroups_async", - "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": "networkconnectivity_v1_generated_hub_service_list_groups_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_groups", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListGroups", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListGroups" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListGroupsRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsPager", - "shortName": "list_groups" - }, - "description": "Sample for ListGroups", - "file": "networkconnectivity_v1_generated_hub_service_list_groups_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListGroups_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": "networkconnectivity_v1_generated_hub_service_list_groups_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_hub_spokes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubSpokes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListHubSpokes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesAsyncPager", - "shortName": "list_hub_spokes" - }, - "description": "Sample for ListHubSpokes", - "file": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListHubSpokes_async", - "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": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_hub_spokes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubSpokes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListHubSpokes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesPager", - "shortName": "list_hub_spokes" - }, - "description": "Sample for ListHubSpokes", - "file": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListHubSpokes_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": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_hubs", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubs", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListHubs" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListHubsRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsAsyncPager", - "shortName": "list_hubs" - }, - "description": "Sample for ListHubs", - "file": "networkconnectivity_v1_generated_hub_service_list_hubs_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListHubs_async", - "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": "networkconnectivity_v1_generated_hub_service_list_hubs_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_hubs", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubs", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListHubs" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListHubsRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsPager", - "shortName": "list_hubs" - }, - "description": "Sample for ListHubs", - "file": "networkconnectivity_v1_generated_hub_service_list_hubs_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListHubs_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": "networkconnectivity_v1_generated_hub_service_list_hubs_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_route_tables", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRouteTables", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListRouteTables" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesAsyncPager", - "shortName": "list_route_tables" - }, - "description": "Sample for ListRouteTables", - "file": "networkconnectivity_v1_generated_hub_service_list_route_tables_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListRouteTables_async", - "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": "networkconnectivity_v1_generated_hub_service_list_route_tables_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_route_tables", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRouteTables", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListRouteTables" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesPager", - "shortName": "list_route_tables" - }, - "description": "Sample for ListRouteTables", - "file": "networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListRouteTables_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": "networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_routes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRoutes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListRoutes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListRoutesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesAsyncPager", - "shortName": "list_routes" - }, - "description": "Sample for ListRoutes", - "file": "networkconnectivity_v1_generated_hub_service_list_routes_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListRoutes_async", - "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": "networkconnectivity_v1_generated_hub_service_list_routes_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_routes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRoutes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListRoutes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListRoutesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesPager", - "shortName": "list_routes" - }, - "description": "Sample for ListRoutes", - "file": "networkconnectivity_v1_generated_hub_service_list_routes_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListRoutes_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": "networkconnectivity_v1_generated_hub_service_list_routes_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_spokes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListSpokes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListSpokes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListSpokesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesAsyncPager", - "shortName": "list_spokes" - }, - "description": "Sample for ListSpokes", - "file": "networkconnectivity_v1_generated_hub_service_list_spokes_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListSpokes_async", - "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": "networkconnectivity_v1_generated_hub_service_list_spokes_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_spokes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListSpokes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "ListSpokes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListSpokesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesPager", - "shortName": "list_spokes" - }, - "description": "Sample for ListSpokes", - "file": "networkconnectivity_v1_generated_hub_service_list_spokes_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListSpokes_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": "networkconnectivity_v1_generated_hub_service_list_spokes_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.reject_hub_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "RejectHubSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "spoke_uri", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "reject_hub_spoke" - }, - "description": "Sample for RejectHubSpoke", - "file": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_RejectHubSpoke_async", - "segments": [ - { - "end": 56, - "start": 27, - "type": "FULL" - }, - { - "end": 56, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 46, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 53, - "start": 47, - "type": "REQUEST_EXECUTION" - }, - { - "end": 57, - "start": 54, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.reject_hub_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "RejectHubSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "spoke_uri", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "reject_hub_spoke" - }, - "description": "Sample for RejectHubSpoke", - "file": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_RejectHubSpoke_sync", - "segments": [ - { - "end": 56, - "start": 27, - "type": "FULL" - }, - { - "end": 56, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 46, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 53, - "start": 47, - "type": "REQUEST_EXECUTION" - }, - { - "end": 57, - "start": 54, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.update_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.UpdateHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "UpdateHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.UpdateHubRequest" - }, - { - "name": "hub", - "type": "google.cloud.networkconnectivity_v1.types.Hub" - }, - { - "name": "update_mask", - "type": "google.protobuf.field_mask_pb2.FieldMask" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "update_hub" - }, - "description": "Sample for UpdateHub", - "file": "networkconnectivity_v1_generated_hub_service_update_hub_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_UpdateHub_async", - "segments": [ - { - "end": 54, - "start": 27, - "type": "FULL" - }, - { - "end": 54, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 51, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 55, - "start": 52, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_update_hub_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.update_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.UpdateHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "UpdateHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.UpdateHubRequest" - }, - { - "name": "hub", - "type": "google.cloud.networkconnectivity_v1.types.Hub" - }, - { - "name": "update_mask", - "type": "google.protobuf.field_mask_pb2.FieldMask" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "update_hub" - }, - "description": "Sample for UpdateHub", - "file": "networkconnectivity_v1_generated_hub_service_update_hub_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_UpdateHub_sync", - "segments": [ - { - "end": 54, - "start": 27, - "type": "FULL" - }, - { - "end": 54, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 51, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 55, - "start": 52, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_update_hub_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.update_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.UpdateSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "UpdateSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest" - }, - { - "name": "spoke", - "type": "google.cloud.networkconnectivity_v1.types.Spoke" - }, - { - "name": "update_mask", - "type": "google.protobuf.field_mask_pb2.FieldMask" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "update_spoke" - }, - "description": "Sample for UpdateSpoke", - "file": "networkconnectivity_v1_generated_hub_service_update_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_UpdateSpoke_async", - "segments": [ - { - "end": 54, - "start": 27, - "type": "FULL" - }, - { - "end": 54, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 51, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 55, - "start": 52, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_update_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.update_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.UpdateSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.HubService", - "shortName": "HubService" - }, - "shortName": "UpdateSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.UpdateSpokeRequest" - }, - { - "name": "spoke", - "type": "google.cloud.networkconnectivity_v1.types.Spoke" - }, - { - "name": "update_mask", - "type": "google.protobuf.field_mask_pb2.FieldMask" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "update_spoke" - }, - "description": "Sample for UpdateSpoke", - "file": "networkconnectivity_v1_generated_hub_service_update_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_UpdateSpoke_sync", - "segments": [ - { - "end": 54, - "start": 27, - "type": "FULL" - }, - { - "end": 54, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 51, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 55, - "start": 52, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_hub_service_update_spoke_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient", - "shortName": "PolicyBasedRoutingServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient.create_policy_based_route", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.CreatePolicyBasedRoute", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", - "shortName": "PolicyBasedRoutingService" - }, - "shortName": "CreatePolicyBasedRoute" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.CreatePolicyBasedRouteRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "policy_based_route", - "type": "google.cloud.networkconnectivity_v1.types.PolicyBasedRoute" - }, - { - "name": "policy_based_route_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "create_policy_based_route" - }, - "description": "Sample for CreatePolicyBasedRoute", - "file": "networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_async", - "segments": [ - { - "end": 62, - "start": 27, - "type": "FULL" - }, - { - "end": 62, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 52, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 59, - "start": 53, - "type": "REQUEST_EXECUTION" - }, - { - "end": 63, - "start": 60, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient", - "shortName": "PolicyBasedRoutingServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient.create_policy_based_route", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.CreatePolicyBasedRoute", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", - "shortName": "PolicyBasedRoutingService" - }, - "shortName": "CreatePolicyBasedRoute" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.CreatePolicyBasedRouteRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "policy_based_route", - "type": "google.cloud.networkconnectivity_v1.types.PolicyBasedRoute" - }, - { - "name": "policy_based_route_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "create_policy_based_route" - }, - "description": "Sample for CreatePolicyBasedRoute", - "file": "networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_sync", - "segments": [ - { - "end": 62, - "start": 27, - "type": "FULL" - }, - { - "end": 62, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 52, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 59, - "start": 53, - "type": "REQUEST_EXECUTION" - }, - { - "end": 63, - "start": 60, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_policy_based_routing_service_create_policy_based_route_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient", - "shortName": "PolicyBasedRoutingServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient.delete_policy_based_route", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.DeletePolicyBasedRoute", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", - "shortName": "PolicyBasedRoutingService" - }, - "shortName": "DeletePolicyBasedRoute" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.DeletePolicyBasedRouteRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "delete_policy_based_route" - }, - "description": "Sample for DeletePolicyBasedRoute", - "file": "networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_async", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient", - "shortName": "PolicyBasedRoutingServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient.delete_policy_based_route", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.DeletePolicyBasedRoute", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", - "shortName": "PolicyBasedRoutingService" - }, - "shortName": "DeletePolicyBasedRoute" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.DeletePolicyBasedRouteRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "delete_policy_based_route" - }, - "description": "Sample for DeletePolicyBasedRoute", - "file": "networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_sync", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_policy_based_routing_service_delete_policy_based_route_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient", - "shortName": "PolicyBasedRoutingServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient.get_policy_based_route", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.GetPolicyBasedRoute", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", - "shortName": "PolicyBasedRoutingService" - }, - "shortName": "GetPolicyBasedRoute" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetPolicyBasedRouteRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.PolicyBasedRoute", - "shortName": "get_policy_based_route" - }, - "description": "Sample for GetPolicyBasedRoute", - "file": "networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_async", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient", - "shortName": "PolicyBasedRoutingServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient.get_policy_based_route", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.GetPolicyBasedRoute", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", - "shortName": "PolicyBasedRoutingService" - }, - "shortName": "GetPolicyBasedRoute" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetPolicyBasedRouteRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.types.PolicyBasedRoute", - "shortName": "get_policy_based_route" - }, - "description": "Sample for GetPolicyBasedRoute", - "file": "networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_sync", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1_generated_policy_based_routing_service_get_policy_based_route_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient", - "shortName": "PolicyBasedRoutingServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceAsyncClient.list_policy_based_routes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.ListPolicyBasedRoutes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", - "shortName": "PolicyBasedRoutingService" - }, - "shortName": "ListPolicyBasedRoutes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers.ListPolicyBasedRoutesAsyncPager", - "shortName": "list_policy_based_routes" - }, - "description": "Sample for ListPolicyBasedRoutes", - "file": "networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_async", - "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": "networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient", - "shortName": "PolicyBasedRoutingServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1.PolicyBasedRoutingServiceClient.list_policy_based_routes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService.ListPolicyBasedRoutes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1.PolicyBasedRoutingService", - "shortName": "PolicyBasedRoutingService" - }, - "shortName": "ListPolicyBasedRoutes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListPolicyBasedRoutesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1.services.policy_based_routing_service.pagers.ListPolicyBasedRoutesPager", - "shortName": "list_policy_based_routes" - }, - "description": "Sample for ListPolicyBasedRoutes", - "file": "networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_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": "networkconnectivity_v1_generated_policy_based_routing_service_list_policy_based_routes_sync.py" - } - ] -} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/scripts/fixup_networkconnectivity_v1_keywords.py b/owl-bot-staging/google-cloud-network-connectivity/v1/scripts/fixup_networkconnectivity_v1_keywords.py deleted file mode 100644 index 3399ba0a311e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/scripts/fixup_networkconnectivity_v1_keywords.py +++ /dev/null @@ -1,198 +0,0 @@ -#! /usr/bin/env python3 -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import argparse -import os -import libcst as cst -import pathlib -import sys -from typing import (Any, Callable, Dict, List, Sequence, Tuple) - - -def partition( - predicate: Callable[[Any], bool], - iterator: Sequence[Any] -) -> Tuple[List[Any], List[Any]]: - """A stable, out-of-place partition.""" - results = ([], []) - - for i in iterator: - results[int(predicate(i))].append(i) - - # Returns trueList, falseList - return results[1], results[0] - - -class networkconnectivityCallTransformer(cst.CSTTransformer): - CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata') - METHOD_TO_PARAMS: Dict[str, Tuple[str]] = { - 'accept_hub_spoke': ('name', 'spoke_uri', 'request_id', ), - 'create_hub': ('parent', 'hub_id', 'hub', 'request_id', ), - 'create_policy_based_route': ('parent', 'policy_based_route_id', 'policy_based_route', 'request_id', ), - 'create_spoke': ('parent', 'spoke_id', 'spoke', 'request_id', ), - 'delete_hub': ('name', 'request_id', ), - 'delete_policy_based_route': ('name', 'request_id', ), - 'delete_spoke': ('name', 'request_id', ), - 'get_group': ('name', ), - 'get_hub': ('name', ), - 'get_policy_based_route': ('name', ), - 'get_route': ('name', ), - 'get_route_table': ('name', ), - 'get_spoke': ('name', ), - 'list_groups': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), - 'list_hubs': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), - 'list_hub_spokes': ('name', 'spoke_locations', 'page_size', 'page_token', 'filter', 'order_by', 'view', ), - 'list_policy_based_routes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), - 'list_routes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), - 'list_route_tables': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), - 'list_spokes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), - 'reject_hub_spoke': ('name', 'spoke_uri', 'request_id', 'details', ), - 'update_hub': ('hub', 'update_mask', 'request_id', ), - 'update_spoke': ('spoke', 'update_mask', 'request_id', ), - } - - def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode: - try: - key = original.func.attr.value - kword_params = self.METHOD_TO_PARAMS[key] - except (AttributeError, KeyError): - # Either not a method from the API or too convoluted to be sure. - return updated - - # If the existing code is valid, keyword args come after positional args. - # Therefore, all positional args must map to the first parameters. - args, kwargs = partition(lambda a: not bool(a.keyword), updated.args) - if any(k.keyword.value == "request" for k in kwargs): - # We've already fixed this file, don't fix it again. - return updated - - kwargs, ctrl_kwargs = partition( - lambda a: a.keyword.value not in self.CTRL_PARAMS, - kwargs - ) - - args, ctrl_args = args[:len(kword_params)], args[len(kword_params):] - ctrl_kwargs.extend(cst.Arg(value=a.value, keyword=cst.Name(value=ctrl)) - for a, ctrl in zip(ctrl_args, self.CTRL_PARAMS)) - - request_arg = cst.Arg( - value=cst.Dict([ - cst.DictElement( - cst.SimpleString("'{}'".format(name)), -cst.Element(value=arg.value) - ) - # Note: the args + kwargs looks silly, but keep in mind that - # the control parameters had to be stripped out, and that - # those could have been passed positionally or by keyword. - for name, arg in zip(kword_params, args + kwargs)]), - keyword=cst.Name("request") - ) - - return updated.with_changes( - args=[request_arg] + ctrl_kwargs - ) - - -def fix_files( - in_dir: pathlib.Path, - out_dir: pathlib.Path, - *, - transformer=networkconnectivityCallTransformer(), -): - """Duplicate the input dir to the output dir, fixing file method calls. - - Preconditions: - * in_dir is a real directory - * out_dir is a real, empty directory - """ - pyfile_gen = ( - pathlib.Path(os.path.join(root, f)) - for root, _, files in os.walk(in_dir) - for f in files if os.path.splitext(f)[1] == ".py" - ) - - for fpath in pyfile_gen: - with open(fpath, 'r') as f: - src = f.read() - - # Parse the code and insert method call fixes. - tree = cst.parse_module(src) - updated = tree.visit(transformer) - - # Create the path and directory structure for the new file. - updated_path = out_dir.joinpath(fpath.relative_to(in_dir)) - updated_path.parent.mkdir(parents=True, exist_ok=True) - - # Generate the updated source file at the corresponding path. - with open(updated_path, 'w') as f: - f.write(updated.code) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser( - description="""Fix up source that uses the networkconnectivity client library. - -The existing sources are NOT overwritten but are copied to output_dir with changes made. - -Note: This tool operates at a best-effort level at converting positional - parameters in client method calls to keyword based parameters. - Cases where it WILL FAIL include - A) * or ** expansion in a method call. - B) Calls via function or method alias (includes free function calls) - C) Indirect or dispatched calls (e.g. the method is looked up dynamically) - - These all constitute false negatives. The tool will also detect false - positives when an API method shares a name with another method. -""") - parser.add_argument( - '-d', - '--input-directory', - required=True, - dest='input_dir', - help='the input directory to walk for python files to fix up', - ) - parser.add_argument( - '-o', - '--output-directory', - required=True, - dest='output_dir', - help='the directory to output files fixed via un-flattening', - ) - args = parser.parse_args() - input_dir = pathlib.Path(args.input_dir) - output_dir = pathlib.Path(args.output_dir) - if not input_dir.is_dir(): - print( - f"input directory '{input_dir}' does not exist or is not a directory", - file=sys.stderr, - ) - sys.exit(-1) - - if not output_dir.is_dir(): - print( - f"output directory '{output_dir}' does not exist or is not a directory", - file=sys.stderr, - ) - sys.exit(-1) - - if os.listdir(output_dir): - print( - f"output directory '{output_dir}' is not empty", - file=sys.stderr, - ) - sys.exit(-1) - - fix_files(input_dir, output_dir) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/setup.py b/owl-bot-staging/google-cloud-network-connectivity/v1/setup.py deleted file mode 100644 index 5fc9aec022e4..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/setup.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import io -import os - -import setuptools # type: ignore - -package_root = os.path.abspath(os.path.dirname(__file__)) - -name = 'google-cloud-network-connectivity' - - -description = "Google Cloud Network Connectivity API client library" - -version = {} -with open(os.path.join(package_root, 'google/cloud/networkconnectivity/gapic_version.py')) as fp: - exec(fp.read(), version) -version = version["__version__"] - -if version[0] == "0": - release_status = "Development Status :: 4 - Beta" -else: - release_status = "Development Status :: 5 - Production/Stable" - -dependencies = [ - "google-api-core[grpc] >= 1.34.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", - "proto-plus >= 1.22.0, <2.0.0dev", - "proto-plus >= 1.22.2, <2.0.0dev; python_version>='3.11'", - "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", - "grpc-google-iam-v1 >= 0.12.4, <1.0.0dev", -] -url = "https://github.com/googleapis/python-network-connectivity" - -package_root = os.path.abspath(os.path.dirname(__file__)) - -readme_filename = os.path.join(package_root, "README.rst") -with io.open(readme_filename, encoding="utf-8") as readme_file: - readme = readme_file.read() - -packages = [ - package - for package in setuptools.PEP420PackageFinder.find() - if package.startswith("google") -] - -namespaces = ["google", "google.cloud"] - -setuptools.setup( - name=name, - version=version, - description=description, - long_description=readme, - author="Google LLC", - author_email="googleapis-packages@google.com", - license="Apache 2.0", - url=url, - classifiers=[ - release_status, - "Intended Audience :: Developers", - "License :: OSI Approved :: Apache Software License", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Operating System :: OS Independent", - "Topic :: Internet", - ], - platforms="Posix; MacOS X; Windows", - packages=packages, - python_requires=">=3.7", - namespace_packages=namespaces, - install_requires=dependencies, - include_package_data=True, - zip_safe=False, -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.10.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.10.txt deleted file mode 100644 index ad3f0fa58e2d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.10.txt +++ /dev/null @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf -grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.11.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.11.txt deleted file mode 100644 index ad3f0fa58e2d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.11.txt +++ /dev/null @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf -grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.12.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.12.txt deleted file mode 100644 index ad3f0fa58e2d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.12.txt +++ /dev/null @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf -grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.7.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.7.txt deleted file mode 100644 index 2beecf99e0be..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.7.txt +++ /dev/null @@ -1,10 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.0 -proto-plus==1.22.0 -protobuf==3.19.5 -grpc-google-iam-v1==0.12.4 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.8.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.8.txt deleted file mode 100644 index ad3f0fa58e2d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.8.txt +++ /dev/null @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf -grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.9.txt b/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.9.txt deleted file mode 100644 index ad3f0fa58e2d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/testing/constraints-3.9.txt +++ /dev/null @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf -grpc-google-iam-v1 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/__init__.py deleted file mode 100644 index 1b4db446eb8d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ - -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/__init__.py deleted file mode 100644 index 1b4db446eb8d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ - -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/__init__.py deleted file mode 100644 index 1b4db446eb8d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ - -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/__init__.py deleted file mode 100644 index 1b4db446eb8d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ - -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py deleted file mode 100644 index f418a466ed1c..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py +++ /dev/null @@ -1,8386 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import os -# try/except added for compatibility with python < 3.8 -try: - from unittest import mock - from unittest.mock import AsyncMock # pragma: NO COVER -except ImportError: # pragma: NO COVER - import mock - -import grpc -from grpc.experimental import aio -import math -import pytest -from proto.marshal.rules.dates import DurationRule, TimestampRule -from proto.marshal.rules import wrappers - -from google.api_core import client_options -from google.api_core import exceptions as core_exceptions -from google.api_core import future -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers -from google.api_core import grpc_helpers_async -from google.api_core import operation -from google.api_core import operation_async # type: ignore -from google.api_core import operations_v1 -from google.api_core import path_template -from google.auth import credentials as ga_credentials -from google.auth.exceptions import MutualTLSChannelError -from google.cloud.location import locations_pb2 -from google.cloud.networkconnectivity_v1.services.hub_service import HubServiceAsyncClient -from google.cloud.networkconnectivity_v1.services.hub_service import HubServiceClient -from google.cloud.networkconnectivity_v1.services.hub_service import pagers -from google.cloud.networkconnectivity_v1.services.hub_service import transports -from google.cloud.networkconnectivity_v1.types import common -from google.cloud.networkconnectivity_v1.types import hub -from google.cloud.networkconnectivity_v1.types import hub as gcn_hub -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import options_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from google.oauth2 import service_account -from google.protobuf import empty_pb2 # type: ignore -from google.protobuf import field_mask_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore -import google.auth - - -def client_cert_source_callback(): - return b"cert bytes", b"key bytes" - - -# If default endpoint is localhost, then default mtls endpoint will be the same. -# This method modifies the default endpoint so the client can produce a different -# mtls endpoint for endpoint testing purposes. -def modify_default_endpoint(client): - return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT - - -def test__get_default_mtls_endpoint(): - api_endpoint = "example.googleapis.com" - api_mtls_endpoint = "example.mtls.googleapis.com" - sandbox_endpoint = "example.sandbox.googleapis.com" - sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com" - non_googleapi = "api.example.com" - - assert HubServiceClient._get_default_mtls_endpoint(None) is None - assert HubServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint - assert HubServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint - assert HubServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint - assert HubServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint - assert HubServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi - - -@pytest.mark.parametrize("client_class,transport_name", [ - (HubServiceClient, "grpc"), - (HubServiceAsyncClient, "grpc_asyncio"), -]) -def test_hub_service_client_from_service_account_info(client_class, transport_name): - creds = ga_credentials.AnonymousCredentials() - with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory: - factory.return_value = creds - info = {"valid": True} - client = client_class.from_service_account_info(info, transport=transport_name) - assert client.transport._credentials == creds - assert isinstance(client, client_class) - - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:443' - ) - - -@pytest.mark.parametrize("transport_class,transport_name", [ - (transports.HubServiceGrpcTransport, "grpc"), - (transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), -]) -def test_hub_service_client_service_account_always_use_jwt(transport_class, transport_name): - with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: - creds = service_account.Credentials(None, None, None) - transport = transport_class(credentials=creds, always_use_jwt_access=True) - use_jwt.assert_called_once_with(True) - - with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: - creds = service_account.Credentials(None, None, None) - transport = transport_class(credentials=creds, always_use_jwt_access=False) - use_jwt.assert_not_called() - - -@pytest.mark.parametrize("client_class,transport_name", [ - (HubServiceClient, "grpc"), - (HubServiceAsyncClient, "grpc_asyncio"), -]) -def test_hub_service_client_from_service_account_file(client_class, transport_name): - creds = ga_credentials.AnonymousCredentials() - with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory: - factory.return_value = creds - client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name) - assert client.transport._credentials == creds - assert isinstance(client, client_class) - - client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name) - assert client.transport._credentials == creds - assert isinstance(client, client_class) - - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:443' - ) - - -def test_hub_service_client_get_transport_class(): - transport = HubServiceClient.get_transport_class() - available_transports = [ - transports.HubServiceGrpcTransport, - ] - assert transport in available_transports - - transport = HubServiceClient.get_transport_class("grpc") - assert transport == transports.HubServiceGrpcTransport - - -@pytest.mark.parametrize("client_class,transport_class,transport_name", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc"), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), -]) -@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) -@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) -def test_hub_service_client_client_options(client_class, transport_class, transport_name): - # Check that if channel is provided we won't create a new one. - with mock.patch.object(HubServiceClient, 'get_transport_class') as gtc: - transport = transport_class( - credentials=ga_credentials.AnonymousCredentials() - ) - client = client_class(transport=transport) - gtc.assert_not_called() - - # Check that if channel is provided via str we will create a new one. - with mock.patch.object(HubServiceClient, 'get_transport_class') as gtc: - client = client_class(transport=transport_name) - gtc.assert_called() - - # Check the case api_endpoint is provided. - options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(transport=transport_name, client_options=options) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host="squid.clam.whelk", - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is - # "never". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is - # "always". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_MTLS_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has - # unsupported value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}): - with pytest.raises(MutualTLSChannelError): - client = client_class(transport=transport_name) - - # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}): - with pytest.raises(ValueError): - client = client_class(transport=transport_name) - - # Check the case quota_project_id is provided - options = client_options.ClientOptions(quota_project_id="octopus") - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id="octopus", - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - # Check the case api_endpoint is provided - options = client_options.ClientOptions(api_audience="https://language.googleapis.com") - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience="https://language.googleapis.com" - ) - -@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", "true"), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"), - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", "false"), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"), -]) -@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) -@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) -@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}) -def test_hub_service_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env): - # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default - # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists. - - # Check the case client_cert_source is provided. Whether client cert is used depends on - # GOOGLE_API_USE_CLIENT_CERTIFICATE value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): - options = client_options.ClientOptions(client_cert_source=client_cert_source_callback) - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - - if use_client_cert_env == "false": - expected_client_cert_source = None - expected_host = client.DEFAULT_ENDPOINT - else: - expected_client_cert_source = client_cert_source_callback - expected_host = client.DEFAULT_MTLS_ENDPOINT - - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=expected_host, - scopes=None, - client_cert_source_for_mtls=expected_client_cert_source, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case ADC client cert is provided. Whether client cert is used depends on - # GOOGLE_API_USE_CLIENT_CERTIFICATE value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): - with mock.patch.object(transport_class, '__init__') as patched: - with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): - with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback): - if use_client_cert_env == "false": - expected_host = client.DEFAULT_ENDPOINT - expected_client_cert_source = None - else: - expected_host = client.DEFAULT_MTLS_ENDPOINT - expected_client_cert_source = client_cert_source_callback - - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=expected_host, - scopes=None, - client_cert_source_for_mtls=expected_client_cert_source, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case client_cert_source and ADC client cert are not provided. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): - with mock.patch.object(transport_class, '__init__') as patched: - with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False): - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - -@pytest.mark.parametrize("client_class", [ - HubServiceClient, HubServiceAsyncClient -]) -@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) -@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) -def test_hub_service_client_get_mtls_endpoint_and_cert_source(client_class): - mock_client_cert_source = mock.Mock() - - # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): - mock_api_endpoint = "foo" - options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) - assert api_endpoint == mock_api_endpoint - assert cert_source == mock_client_cert_source - - # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}): - mock_client_cert_source = mock.Mock() - mock_api_endpoint = "foo" - options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) - assert api_endpoint == mock_api_endpoint - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_ENDPOINT - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): - with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_ENDPOINT - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): - with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): - with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT - assert cert_source == mock_client_cert_source - - -@pytest.mark.parametrize("client_class,transport_class,transport_name", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc"), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), -]) -def test_hub_service_client_client_options_scopes(client_class, transport_class, transport_name): - # Check the case scopes are provided. - options = client_options.ClientOptions( - scopes=["1", "2"], - ) - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=["1", "2"], - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - -@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", grpc_helpers), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), -]) -def test_hub_service_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers): - # Check the case credentials file is provided. - options = client_options.ClientOptions( - credentials_file="credentials.json" - ) - - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file="credentials.json", - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - -def test_hub_service_client_client_options_from_dict(): - with mock.patch('google.cloud.networkconnectivity_v1.services.hub_service.transports.HubServiceGrpcTransport.__init__') as grpc_transport: - grpc_transport.return_value = None - client = HubServiceClient( - client_options={'api_endpoint': 'squid.clam.whelk'} - ) - grpc_transport.assert_called_once_with( - credentials=None, - credentials_file=None, - host="squid.clam.whelk", - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - -@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", grpc_helpers), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), -]) -def test_hub_service_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers): - # Check the case credentials file is provided. - options = client_options.ClientOptions( - credentials_file="credentials.json" - ) - - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file="credentials.json", - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # test that the credentials from file are saved and used as the credentials. - with mock.patch.object( - google.auth, "load_credentials_from_file", autospec=True - ) as load_creds, mock.patch.object( - google.auth, "default", autospec=True - ) as adc, mock.patch.object( - grpc_helpers, "create_channel" - ) as create_channel: - creds = ga_credentials.AnonymousCredentials() - file_creds = ga_credentials.AnonymousCredentials() - load_creds.return_value = (file_creds, None) - adc.return_value = (creds, None) - client = client_class(client_options=options, transport=transport_name) - create_channel.assert_called_with( - "networkconnectivity.googleapis.com:443", - credentials=file_creds, - credentials_file=None, - quota_project_id=None, - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - scopes=None, - default_host="networkconnectivity.googleapis.com", - ssl_credentials=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - -@pytest.mark.parametrize("request_type", [ - hub.ListHubsRequest, - dict, -]) -def test_list_hubs(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListHubsResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - ) - response = client.list_hubs(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListHubsRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListHubsPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -def test_list_hubs_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - client.list_hubs() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListHubsRequest() - -@pytest.mark.asyncio -async def test_list_hubs_async(transport: str = 'grpc_asyncio', request_type=hub.ListHubsRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - )) - response = await client.list_hubs(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListHubsRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListHubsAsyncPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -@pytest.mark.asyncio -async def test_list_hubs_async_from_dict(): - await test_list_hubs_async(request_type=dict) - - -def test_list_hubs_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListHubsRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - call.return_value = hub.ListHubsResponse() - client.list_hubs(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_list_hubs_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListHubsRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse()) - await client.list_hubs(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_list_hubs_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListHubsResponse() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.list_hubs( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - - -def test_list_hubs_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.list_hubs( - hub.ListHubsRequest(), - parent='parent_value', - ) - -@pytest.mark.asyncio -async def test_list_hubs_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListHubsResponse() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.list_hubs( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_list_hubs_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.list_hubs( - hub.ListHubsRequest(), - parent='parent_value', - ) - - -def test_list_hubs_pager(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - hub.Hub(), - ], - next_page_token='abc', - ), - hub.ListHubsResponse( - hubs=[], - next_page_token='def', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - ], - next_page_token='ghi', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - ], - ), - RuntimeError, - ) - - metadata = () - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ('parent', ''), - )), - ) - pager = client.list_hubs(request={}) - - assert pager._metadata == metadata - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, hub.Hub) - for i in results) -def test_list_hubs_pages(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - hub.Hub(), - ], - next_page_token='abc', - ), - hub.ListHubsResponse( - hubs=[], - next_page_token='def', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - ], - next_page_token='ghi', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - ], - ), - RuntimeError, - ) - pages = list(client.list_hubs(request={}).pages) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.asyncio -async def test_list_hubs_async_pager(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - hub.Hub(), - ], - next_page_token='abc', - ), - hub.ListHubsResponse( - hubs=[], - next_page_token='def', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - ], - next_page_token='ghi', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - ], - ), - RuntimeError, - ) - async_pager = await client.list_hubs(request={},) - assert async_pager.next_page_token == 'abc' - responses = [] - async for response in async_pager: # pragma: no branch - responses.append(response) - - assert len(responses) == 6 - assert all(isinstance(i, hub.Hub) - for i in responses) - - -@pytest.mark.asyncio -async def test_list_hubs_async_pages(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - hub.Hub(), - ], - next_page_token='abc', - ), - hub.ListHubsResponse( - hubs=[], - next_page_token='def', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - ], - next_page_token='ghi', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - ], - ), - RuntimeError, - ) - pages = [] - # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` - # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 - async for page_ in ( # pragma: no branch - await client.list_hubs(request={}) - ).pages: - pages.append(page_) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.parametrize("request_type", [ - hub.GetHubRequest, - dict, -]) -def test_get_hub(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Hub( - name='name_value', - description='description_value', - unique_id='unique_id_value', - state=hub.State.CREATING, - route_tables=['route_tables_value'], - ) - response = client.get_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Hub) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.unique_id == 'unique_id_value' - assert response.state == hub.State.CREATING - assert response.route_tables == ['route_tables_value'] - - -def test_get_hub_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - client.get_hub() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetHubRequest() - -@pytest.mark.asyncio -async def test_get_hub_async(transport: str = 'grpc_asyncio', request_type=hub.GetHubRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub( - name='name_value', - description='description_value', - unique_id='unique_id_value', - state=hub.State.CREATING, - route_tables=['route_tables_value'], - )) - response = await client.get_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Hub) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.unique_id == 'unique_id_value' - assert response.state == hub.State.CREATING - assert response.route_tables == ['route_tables_value'] - - -@pytest.mark.asyncio -async def test_get_hub_async_from_dict(): - await test_get_hub_async(request_type=dict) - - -def test_get_hub_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetHubRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - call.return_value = hub.Hub() - client.get_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_get_hub_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetHubRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub()) - await client.get_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_get_hub_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Hub() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.get_hub( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_get_hub_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.get_hub( - hub.GetHubRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_get_hub_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Hub() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.get_hub( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_get_hub_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.get_hub( - hub.GetHubRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - gcn_hub.CreateHubRequest, - dict, -]) -def test_create_hub(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.create_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.CreateHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_create_hub_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - client.create_hub() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.CreateHubRequest() - -@pytest.mark.asyncio -async def test_create_hub_async(transport: str = 'grpc_asyncio', request_type=gcn_hub.CreateHubRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.create_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.CreateHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_create_hub_async_from_dict(): - await test_create_hub_async(request_type=dict) - - -def test_create_hub_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = gcn_hub.CreateHubRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.create_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_create_hub_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = gcn_hub.CreateHubRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.create_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_create_hub_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.create_hub( - parent='parent_value', - hub=gcn_hub.Hub(name='name_value'), - hub_id='hub_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].hub - mock_val = gcn_hub.Hub(name='name_value') - assert arg == mock_val - arg = args[0].hub_id - mock_val = 'hub_id_value' - assert arg == mock_val - - -def test_create_hub_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.create_hub( - gcn_hub.CreateHubRequest(), - parent='parent_value', - hub=gcn_hub.Hub(name='name_value'), - hub_id='hub_id_value', - ) - -@pytest.mark.asyncio -async def test_create_hub_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.create_hub( - parent='parent_value', - hub=gcn_hub.Hub(name='name_value'), - hub_id='hub_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].hub - mock_val = gcn_hub.Hub(name='name_value') - assert arg == mock_val - arg = args[0].hub_id - mock_val = 'hub_id_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_create_hub_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.create_hub( - gcn_hub.CreateHubRequest(), - parent='parent_value', - hub=gcn_hub.Hub(name='name_value'), - hub_id='hub_id_value', - ) - - -@pytest.mark.parametrize("request_type", [ - gcn_hub.UpdateHubRequest, - dict, -]) -def test_update_hub(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.update_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.UpdateHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_update_hub_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - client.update_hub() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.UpdateHubRequest() - -@pytest.mark.asyncio -async def test_update_hub_async(transport: str = 'grpc_asyncio', request_type=gcn_hub.UpdateHubRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.update_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.UpdateHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_update_hub_async_from_dict(): - await test_update_hub_async(request_type=dict) - - -def test_update_hub_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = gcn_hub.UpdateHubRequest() - - request.hub.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.update_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'hub.name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_update_hub_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = gcn_hub.UpdateHubRequest() - - request.hub.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.update_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'hub.name=name_value', - ) in kw['metadata'] - - -def test_update_hub_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.update_hub( - hub=gcn_hub.Hub(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].hub - mock_val = gcn_hub.Hub(name='name_value') - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) - assert arg == mock_val - - -def test_update_hub_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.update_hub( - gcn_hub.UpdateHubRequest(), - hub=gcn_hub.Hub(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - -@pytest.mark.asyncio -async def test_update_hub_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.update_hub( - hub=gcn_hub.Hub(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].hub - mock_val = gcn_hub.Hub(name='name_value') - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) - assert arg == mock_val - -@pytest.mark.asyncio -async def test_update_hub_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.update_hub( - gcn_hub.UpdateHubRequest(), - hub=gcn_hub.Hub(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - -@pytest.mark.parametrize("request_type", [ - hub.DeleteHubRequest, - dict, -]) -def test_delete_hub(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.delete_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_delete_hub_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - client.delete_hub() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteHubRequest() - -@pytest.mark.asyncio -async def test_delete_hub_async(transport: str = 'grpc_asyncio', request_type=hub.DeleteHubRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.delete_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_delete_hub_async_from_dict(): - await test_delete_hub_async(request_type=dict) - - -def test_delete_hub_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.DeleteHubRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.delete_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_delete_hub_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.DeleteHubRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.delete_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_delete_hub_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.delete_hub( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_delete_hub_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.delete_hub( - hub.DeleteHubRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_delete_hub_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.delete_hub( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_delete_hub_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.delete_hub( - hub.DeleteHubRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.ListHubSpokesRequest, - dict, -]) -def test_list_hub_spokes(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListHubSpokesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - ) - response = client.list_hub_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListHubSpokesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListHubSpokesPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -def test_list_hub_spokes_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__') as call: - client.list_hub_spokes() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListHubSpokesRequest() - -@pytest.mark.asyncio -async def test_list_hub_spokes_async(transport: str = 'grpc_asyncio', request_type=hub.ListHubSpokesRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubSpokesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - )) - response = await client.list_hub_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListHubSpokesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListHubSpokesAsyncPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -@pytest.mark.asyncio -async def test_list_hub_spokes_async_from_dict(): - await test_list_hub_spokes_async(request_type=dict) - - -def test_list_hub_spokes_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListHubSpokesRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__') as call: - call.return_value = hub.ListHubSpokesResponse() - client.list_hub_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_list_hub_spokes_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListHubSpokesRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubSpokesResponse()) - await client.list_hub_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_list_hub_spokes_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListHubSpokesResponse() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.list_hub_spokes( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_list_hub_spokes_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.list_hub_spokes( - hub.ListHubSpokesRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_list_hub_spokes_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListHubSpokesResponse() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubSpokesResponse()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.list_hub_spokes( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_list_hub_spokes_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.list_hub_spokes( - hub.ListHubSpokesRequest(), - name='name_value', - ) - - -def test_list_hub_spokes_pager(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListHubSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - - metadata = () - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ('name', ''), - )), - ) - pager = client.list_hub_spokes(request={}) - - assert pager._metadata == metadata - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, hub.Spoke) - for i in results) -def test_list_hub_spokes_pages(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListHubSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - pages = list(client.list_hub_spokes(request={}).pages) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.asyncio -async def test_list_hub_spokes_async_pager(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListHubSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - async_pager = await client.list_hub_spokes(request={},) - assert async_pager.next_page_token == 'abc' - responses = [] - async for response in async_pager: # pragma: no branch - responses.append(response) - - assert len(responses) == 6 - assert all(isinstance(i, hub.Spoke) - for i in responses) - - -@pytest.mark.asyncio -async def test_list_hub_spokes_async_pages(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hub_spokes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListHubSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListHubSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - pages = [] - # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` - # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 - async for page_ in ( # pragma: no branch - await client.list_hub_spokes(request={}) - ).pages: - pages.append(page_) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.parametrize("request_type", [ - hub.ListSpokesRequest, - dict, -]) -def test_list_spokes(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListSpokesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - ) - response = client.list_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListSpokesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListSpokesPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -def test_list_spokes_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - client.list_spokes() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListSpokesRequest() - -@pytest.mark.asyncio -async def test_list_spokes_async(transport: str = 'grpc_asyncio', request_type=hub.ListSpokesRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - )) - response = await client.list_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListSpokesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListSpokesAsyncPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -@pytest.mark.asyncio -async def test_list_spokes_async_from_dict(): - await test_list_spokes_async(request_type=dict) - - -def test_list_spokes_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListSpokesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - call.return_value = hub.ListSpokesResponse() - client.list_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_list_spokes_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListSpokesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse()) - await client.list_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_list_spokes_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListSpokesResponse() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.list_spokes( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - - -def test_list_spokes_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.list_spokes( - hub.ListSpokesRequest(), - parent='parent_value', - ) - -@pytest.mark.asyncio -async def test_list_spokes_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListSpokesResponse() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.list_spokes( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_list_spokes_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.list_spokes( - hub.ListSpokesRequest(), - parent='parent_value', - ) - - -def test_list_spokes_pager(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - - metadata = () - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ('parent', ''), - )), - ) - pager = client.list_spokes(request={}) - - assert pager._metadata == metadata - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, hub.Spoke) - for i in results) -def test_list_spokes_pages(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - pages = list(client.list_spokes(request={}).pages) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.asyncio -async def test_list_spokes_async_pager(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - async_pager = await client.list_spokes(request={},) - assert async_pager.next_page_token == 'abc' - responses = [] - async for response in async_pager: # pragma: no branch - responses.append(response) - - assert len(responses) == 6 - assert all(isinstance(i, hub.Spoke) - for i in responses) - - -@pytest.mark.asyncio -async def test_list_spokes_async_pages(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - pages = [] - # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` - # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 - async for page_ in ( # pragma: no branch - await client.list_spokes(request={}) - ).pages: - pages.append(page_) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.parametrize("request_type", [ - hub.GetSpokeRequest, - dict, -]) -def test_get_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Spoke( - name='name_value', - description='description_value', - hub='hub_value', - group='group_value', - unique_id='unique_id_value', - state=hub.State.CREATING, - spoke_type=hub.SpokeType.VPN_TUNNEL, - ) - response = client.get_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Spoke) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.hub == 'hub_value' - assert response.group == 'group_value' - assert response.unique_id == 'unique_id_value' - assert response.state == hub.State.CREATING - assert response.spoke_type == hub.SpokeType.VPN_TUNNEL - - -def test_get_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - client.get_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetSpokeRequest() - -@pytest.mark.asyncio -async def test_get_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.GetSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke( - name='name_value', - description='description_value', - hub='hub_value', - group='group_value', - unique_id='unique_id_value', - state=hub.State.CREATING, - spoke_type=hub.SpokeType.VPN_TUNNEL, - )) - response = await client.get_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Spoke) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.hub == 'hub_value' - assert response.group == 'group_value' - assert response.unique_id == 'unique_id_value' - assert response.state == hub.State.CREATING - assert response.spoke_type == hub.SpokeType.VPN_TUNNEL - - -@pytest.mark.asyncio -async def test_get_spoke_async_from_dict(): - await test_get_spoke_async(request_type=dict) - - -def test_get_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - call.return_value = hub.Spoke() - client.get_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_get_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) - await client.get_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_get_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Spoke() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.get_spoke( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_get_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.get_spoke( - hub.GetSpokeRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_get_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Spoke() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.get_spoke( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_get_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.get_spoke( - hub.GetSpokeRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.CreateSpokeRequest, - dict, -]) -def test_create_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.create_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.CreateSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_create_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - client.create_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.CreateSpokeRequest() - -@pytest.mark.asyncio -async def test_create_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.CreateSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.create_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.CreateSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_create_spoke_async_from_dict(): - await test_create_spoke_async(request_type=dict) - - -def test_create_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.CreateSpokeRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.create_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_create_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.CreateSpokeRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.create_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_create_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.create_spoke( - parent='parent_value', - spoke=hub.Spoke(name='name_value'), - spoke_id='spoke_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].spoke - mock_val = hub.Spoke(name='name_value') - assert arg == mock_val - arg = args[0].spoke_id - mock_val = 'spoke_id_value' - assert arg == mock_val - - -def test_create_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.create_spoke( - hub.CreateSpokeRequest(), - parent='parent_value', - spoke=hub.Spoke(name='name_value'), - spoke_id='spoke_id_value', - ) - -@pytest.mark.asyncio -async def test_create_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.create_spoke( - parent='parent_value', - spoke=hub.Spoke(name='name_value'), - spoke_id='spoke_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].spoke - mock_val = hub.Spoke(name='name_value') - assert arg == mock_val - arg = args[0].spoke_id - mock_val = 'spoke_id_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_create_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.create_spoke( - hub.CreateSpokeRequest(), - parent='parent_value', - spoke=hub.Spoke(name='name_value'), - spoke_id='spoke_id_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.UpdateSpokeRequest, - dict, -]) -def test_update_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.update_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.UpdateSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_update_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - client.update_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.UpdateSpokeRequest() - -@pytest.mark.asyncio -async def test_update_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.UpdateSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.update_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.UpdateSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_update_spoke_async_from_dict(): - await test_update_spoke_async(request_type=dict) - - -def test_update_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.UpdateSpokeRequest() - - request.spoke.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.update_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'spoke.name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_update_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.UpdateSpokeRequest() - - request.spoke.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.update_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'spoke.name=name_value', - ) in kw['metadata'] - - -def test_update_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.update_spoke( - spoke=hub.Spoke(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].spoke - mock_val = hub.Spoke(name='name_value') - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) - assert arg == mock_val - - -def test_update_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.update_spoke( - hub.UpdateSpokeRequest(), - spoke=hub.Spoke(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - -@pytest.mark.asyncio -async def test_update_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.update_spoke( - spoke=hub.Spoke(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].spoke - mock_val = hub.Spoke(name='name_value') - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) - assert arg == mock_val - -@pytest.mark.asyncio -async def test_update_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.update_spoke( - hub.UpdateSpokeRequest(), - spoke=hub.Spoke(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - -@pytest.mark.parametrize("request_type", [ - hub.RejectHubSpokeRequest, - dict, -]) -def test_reject_hub_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.reject_hub_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.reject_hub_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.RejectHubSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_reject_hub_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.reject_hub_spoke), - '__call__') as call: - client.reject_hub_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.RejectHubSpokeRequest() - -@pytest.mark.asyncio -async def test_reject_hub_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.RejectHubSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.reject_hub_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.reject_hub_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.RejectHubSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_reject_hub_spoke_async_from_dict(): - await test_reject_hub_spoke_async(request_type=dict) - - -def test_reject_hub_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.RejectHubSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.reject_hub_spoke), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.reject_hub_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_reject_hub_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.RejectHubSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.reject_hub_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.reject_hub_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_reject_hub_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.reject_hub_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.reject_hub_spoke( - name='name_value', - spoke_uri='spoke_uri_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - arg = args[0].spoke_uri - mock_val = 'spoke_uri_value' - assert arg == mock_val - - -def test_reject_hub_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.reject_hub_spoke( - hub.RejectHubSpokeRequest(), - name='name_value', - spoke_uri='spoke_uri_value', - ) - -@pytest.mark.asyncio -async def test_reject_hub_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.reject_hub_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.reject_hub_spoke( - name='name_value', - spoke_uri='spoke_uri_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - arg = args[0].spoke_uri - mock_val = 'spoke_uri_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_reject_hub_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.reject_hub_spoke( - hub.RejectHubSpokeRequest(), - name='name_value', - spoke_uri='spoke_uri_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.AcceptHubSpokeRequest, - dict, -]) -def test_accept_hub_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.accept_hub_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.accept_hub_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.AcceptHubSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_accept_hub_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.accept_hub_spoke), - '__call__') as call: - client.accept_hub_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.AcceptHubSpokeRequest() - -@pytest.mark.asyncio -async def test_accept_hub_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.AcceptHubSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.accept_hub_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.accept_hub_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.AcceptHubSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_accept_hub_spoke_async_from_dict(): - await test_accept_hub_spoke_async(request_type=dict) - - -def test_accept_hub_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.AcceptHubSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.accept_hub_spoke), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.accept_hub_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_accept_hub_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.AcceptHubSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.accept_hub_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.accept_hub_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_accept_hub_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.accept_hub_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.accept_hub_spoke( - name='name_value', - spoke_uri='spoke_uri_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - arg = args[0].spoke_uri - mock_val = 'spoke_uri_value' - assert arg == mock_val - - -def test_accept_hub_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.accept_hub_spoke( - hub.AcceptHubSpokeRequest(), - name='name_value', - spoke_uri='spoke_uri_value', - ) - -@pytest.mark.asyncio -async def test_accept_hub_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.accept_hub_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.accept_hub_spoke( - name='name_value', - spoke_uri='spoke_uri_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - arg = args[0].spoke_uri - mock_val = 'spoke_uri_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_accept_hub_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.accept_hub_spoke( - hub.AcceptHubSpokeRequest(), - name='name_value', - spoke_uri='spoke_uri_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.DeleteSpokeRequest, - dict, -]) -def test_delete_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.delete_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_delete_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - client.delete_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteSpokeRequest() - -@pytest.mark.asyncio -async def test_delete_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.DeleteSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.delete_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_delete_spoke_async_from_dict(): - await test_delete_spoke_async(request_type=dict) - - -def test_delete_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.DeleteSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.delete_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_delete_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.DeleteSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.delete_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_delete_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.delete_spoke( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_delete_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.delete_spoke( - hub.DeleteSpokeRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_delete_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.delete_spoke( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_delete_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.delete_spoke( - hub.DeleteSpokeRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.GetRouteTableRequest, - dict, -]) -def test_get_route_table(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route_table), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.RouteTable( - name='name_value', - description='description_value', - uid='uid_value', - state=hub.State.CREATING, - ) - response = client.get_route_table(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetRouteTableRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.RouteTable) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.uid == 'uid_value' - assert response.state == hub.State.CREATING - - -def test_get_route_table_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route_table), - '__call__') as call: - client.get_route_table() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetRouteTableRequest() - -@pytest.mark.asyncio -async def test_get_route_table_async(transport: str = 'grpc_asyncio', request_type=hub.GetRouteTableRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route_table), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.RouteTable( - name='name_value', - description='description_value', - uid='uid_value', - state=hub.State.CREATING, - )) - response = await client.get_route_table(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetRouteTableRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.RouteTable) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.uid == 'uid_value' - assert response.state == hub.State.CREATING - - -@pytest.mark.asyncio -async def test_get_route_table_async_from_dict(): - await test_get_route_table_async(request_type=dict) - - -def test_get_route_table_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetRouteTableRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route_table), - '__call__') as call: - call.return_value = hub.RouteTable() - client.get_route_table(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_get_route_table_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetRouteTableRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route_table), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.RouteTable()) - await client.get_route_table(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_get_route_table_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route_table), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.RouteTable() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.get_route_table( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_get_route_table_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.get_route_table( - hub.GetRouteTableRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_get_route_table_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route_table), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.RouteTable() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.RouteTable()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.get_route_table( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_get_route_table_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.get_route_table( - hub.GetRouteTableRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.GetRouteRequest, - dict, -]) -def test_get_route(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Route( - name='name_value', - ip_cidr_range='ip_cidr_range_value', - type_=hub.RouteType.VPC_PRIMARY_SUBNET, - description='description_value', - uid='uid_value', - state=hub.State.CREATING, - spoke='spoke_value', - location='location_value', - ) - response = client.get_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetRouteRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Route) - assert response.name == 'name_value' - assert response.ip_cidr_range == 'ip_cidr_range_value' - assert response.type_ == hub.RouteType.VPC_PRIMARY_SUBNET - assert response.description == 'description_value' - assert response.uid == 'uid_value' - assert response.state == hub.State.CREATING - assert response.spoke == 'spoke_value' - assert response.location == 'location_value' - - -def test_get_route_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route), - '__call__') as call: - client.get_route() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetRouteRequest() - -@pytest.mark.asyncio -async def test_get_route_async(transport: str = 'grpc_asyncio', request_type=hub.GetRouteRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Route( - name='name_value', - ip_cidr_range='ip_cidr_range_value', - type_=hub.RouteType.VPC_PRIMARY_SUBNET, - description='description_value', - uid='uid_value', - state=hub.State.CREATING, - spoke='spoke_value', - location='location_value', - )) - response = await client.get_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetRouteRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Route) - assert response.name == 'name_value' - assert response.ip_cidr_range == 'ip_cidr_range_value' - assert response.type_ == hub.RouteType.VPC_PRIMARY_SUBNET - assert response.description == 'description_value' - assert response.uid == 'uid_value' - assert response.state == hub.State.CREATING - assert response.spoke == 'spoke_value' - assert response.location == 'location_value' - - -@pytest.mark.asyncio -async def test_get_route_async_from_dict(): - await test_get_route_async(request_type=dict) - - -def test_get_route_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetRouteRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route), - '__call__') as call: - call.return_value = hub.Route() - client.get_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_get_route_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetRouteRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Route()) - await client.get_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_get_route_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Route() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.get_route( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_get_route_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.get_route( - hub.GetRouteRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_get_route_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Route() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Route()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.get_route( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_get_route_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.get_route( - hub.GetRouteRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.ListRoutesRequest, - dict, -]) -def test_list_routes(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListRoutesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - ) - response = client.list_routes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListRoutesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListRoutesPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -def test_list_routes_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__') as call: - client.list_routes() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListRoutesRequest() - -@pytest.mark.asyncio -async def test_list_routes_async(transport: str = 'grpc_asyncio', request_type=hub.ListRoutesRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRoutesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - )) - response = await client.list_routes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListRoutesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListRoutesAsyncPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -@pytest.mark.asyncio -async def test_list_routes_async_from_dict(): - await test_list_routes_async(request_type=dict) - - -def test_list_routes_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListRoutesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__') as call: - call.return_value = hub.ListRoutesResponse() - client.list_routes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_list_routes_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListRoutesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRoutesResponse()) - await client.list_routes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_list_routes_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListRoutesResponse() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.list_routes( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - - -def test_list_routes_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.list_routes( - hub.ListRoutesRequest(), - parent='parent_value', - ) - -@pytest.mark.asyncio -async def test_list_routes_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListRoutesResponse() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRoutesResponse()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.list_routes( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_list_routes_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.list_routes( - hub.ListRoutesRequest(), - parent='parent_value', - ) - - -def test_list_routes_pager(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListRoutesResponse( - routes=[ - hub.Route(), - hub.Route(), - hub.Route(), - ], - next_page_token='abc', - ), - hub.ListRoutesResponse( - routes=[], - next_page_token='def', - ), - hub.ListRoutesResponse( - routes=[ - hub.Route(), - ], - next_page_token='ghi', - ), - hub.ListRoutesResponse( - routes=[ - hub.Route(), - hub.Route(), - ], - ), - RuntimeError, - ) - - metadata = () - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ('parent', ''), - )), - ) - pager = client.list_routes(request={}) - - assert pager._metadata == metadata - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, hub.Route) - for i in results) -def test_list_routes_pages(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListRoutesResponse( - routes=[ - hub.Route(), - hub.Route(), - hub.Route(), - ], - next_page_token='abc', - ), - hub.ListRoutesResponse( - routes=[], - next_page_token='def', - ), - hub.ListRoutesResponse( - routes=[ - hub.Route(), - ], - next_page_token='ghi', - ), - hub.ListRoutesResponse( - routes=[ - hub.Route(), - hub.Route(), - ], - ), - RuntimeError, - ) - pages = list(client.list_routes(request={}).pages) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.asyncio -async def test_list_routes_async_pager(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListRoutesResponse( - routes=[ - hub.Route(), - hub.Route(), - hub.Route(), - ], - next_page_token='abc', - ), - hub.ListRoutesResponse( - routes=[], - next_page_token='def', - ), - hub.ListRoutesResponse( - routes=[ - hub.Route(), - ], - next_page_token='ghi', - ), - hub.ListRoutesResponse( - routes=[ - hub.Route(), - hub.Route(), - ], - ), - RuntimeError, - ) - async_pager = await client.list_routes(request={},) - assert async_pager.next_page_token == 'abc' - responses = [] - async for response in async_pager: # pragma: no branch - responses.append(response) - - assert len(responses) == 6 - assert all(isinstance(i, hub.Route) - for i in responses) - - -@pytest.mark.asyncio -async def test_list_routes_async_pages(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_routes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListRoutesResponse( - routes=[ - hub.Route(), - hub.Route(), - hub.Route(), - ], - next_page_token='abc', - ), - hub.ListRoutesResponse( - routes=[], - next_page_token='def', - ), - hub.ListRoutesResponse( - routes=[ - hub.Route(), - ], - next_page_token='ghi', - ), - hub.ListRoutesResponse( - routes=[ - hub.Route(), - hub.Route(), - ], - ), - RuntimeError, - ) - pages = [] - # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` - # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 - async for page_ in ( # pragma: no branch - await client.list_routes(request={}) - ).pages: - pages.append(page_) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.parametrize("request_type", [ - hub.ListRouteTablesRequest, - dict, -]) -def test_list_route_tables(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListRouteTablesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - ) - response = client.list_route_tables(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListRouteTablesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListRouteTablesPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -def test_list_route_tables_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__') as call: - client.list_route_tables() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListRouteTablesRequest() - -@pytest.mark.asyncio -async def test_list_route_tables_async(transport: str = 'grpc_asyncio', request_type=hub.ListRouteTablesRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRouteTablesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - )) - response = await client.list_route_tables(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListRouteTablesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListRouteTablesAsyncPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -@pytest.mark.asyncio -async def test_list_route_tables_async_from_dict(): - await test_list_route_tables_async(request_type=dict) - - -def test_list_route_tables_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListRouteTablesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__') as call: - call.return_value = hub.ListRouteTablesResponse() - client.list_route_tables(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_list_route_tables_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListRouteTablesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRouteTablesResponse()) - await client.list_route_tables(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_list_route_tables_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListRouteTablesResponse() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.list_route_tables( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - - -def test_list_route_tables_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.list_route_tables( - hub.ListRouteTablesRequest(), - parent='parent_value', - ) - -@pytest.mark.asyncio -async def test_list_route_tables_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListRouteTablesResponse() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListRouteTablesResponse()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.list_route_tables( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_list_route_tables_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.list_route_tables( - hub.ListRouteTablesRequest(), - parent='parent_value', - ) - - -def test_list_route_tables_pager(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - hub.RouteTable(), - hub.RouteTable(), - ], - next_page_token='abc', - ), - hub.ListRouteTablesResponse( - route_tables=[], - next_page_token='def', - ), - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - ], - next_page_token='ghi', - ), - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - hub.RouteTable(), - ], - ), - RuntimeError, - ) - - metadata = () - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ('parent', ''), - )), - ) - pager = client.list_route_tables(request={}) - - assert pager._metadata == metadata - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, hub.RouteTable) - for i in results) -def test_list_route_tables_pages(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - hub.RouteTable(), - hub.RouteTable(), - ], - next_page_token='abc', - ), - hub.ListRouteTablesResponse( - route_tables=[], - next_page_token='def', - ), - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - ], - next_page_token='ghi', - ), - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - hub.RouteTable(), - ], - ), - RuntimeError, - ) - pages = list(client.list_route_tables(request={}).pages) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.asyncio -async def test_list_route_tables_async_pager(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - hub.RouteTable(), - hub.RouteTable(), - ], - next_page_token='abc', - ), - hub.ListRouteTablesResponse( - route_tables=[], - next_page_token='def', - ), - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - ], - next_page_token='ghi', - ), - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - hub.RouteTable(), - ], - ), - RuntimeError, - ) - async_pager = await client.list_route_tables(request={},) - assert async_pager.next_page_token == 'abc' - responses = [] - async for response in async_pager: # pragma: no branch - responses.append(response) - - assert len(responses) == 6 - assert all(isinstance(i, hub.RouteTable) - for i in responses) - - -@pytest.mark.asyncio -async def test_list_route_tables_async_pages(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_route_tables), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - hub.RouteTable(), - hub.RouteTable(), - ], - next_page_token='abc', - ), - hub.ListRouteTablesResponse( - route_tables=[], - next_page_token='def', - ), - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - ], - next_page_token='ghi', - ), - hub.ListRouteTablesResponse( - route_tables=[ - hub.RouteTable(), - hub.RouteTable(), - ], - ), - RuntimeError, - ) - pages = [] - # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` - # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 - async for page_ in ( # pragma: no branch - await client.list_route_tables(request={}) - ).pages: - pages.append(page_) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.parametrize("request_type", [ - hub.GetGroupRequest, - dict, -]) -def test_get_group(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_group), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Group( - name='name_value', - description='description_value', - uid='uid_value', - state=hub.State.CREATING, - ) - response = client.get_group(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetGroupRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Group) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.uid == 'uid_value' - assert response.state == hub.State.CREATING - - -def test_get_group_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_group), - '__call__') as call: - client.get_group() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetGroupRequest() - -@pytest.mark.asyncio -async def test_get_group_async(transport: str = 'grpc_asyncio', request_type=hub.GetGroupRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_group), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Group( - name='name_value', - description='description_value', - uid='uid_value', - state=hub.State.CREATING, - )) - response = await client.get_group(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetGroupRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Group) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.uid == 'uid_value' - assert response.state == hub.State.CREATING - - -@pytest.mark.asyncio -async def test_get_group_async_from_dict(): - await test_get_group_async(request_type=dict) - - -def test_get_group_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetGroupRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_group), - '__call__') as call: - call.return_value = hub.Group() - client.get_group(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_get_group_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetGroupRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_group), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Group()) - await client.get_group(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_get_group_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_group), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Group() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.get_group( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_get_group_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.get_group( - hub.GetGroupRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_get_group_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_group), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Group() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Group()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.get_group( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_get_group_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.get_group( - hub.GetGroupRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.ListGroupsRequest, - dict, -]) -def test_list_groups(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListGroupsResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - ) - response = client.list_groups(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListGroupsRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListGroupsPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -def test_list_groups_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__') as call: - client.list_groups() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListGroupsRequest() - -@pytest.mark.asyncio -async def test_list_groups_async(transport: str = 'grpc_asyncio', request_type=hub.ListGroupsRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListGroupsResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - )) - response = await client.list_groups(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListGroupsRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListGroupsAsyncPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -@pytest.mark.asyncio -async def test_list_groups_async_from_dict(): - await test_list_groups_async(request_type=dict) - - -def test_list_groups_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListGroupsRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__') as call: - call.return_value = hub.ListGroupsResponse() - client.list_groups(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_list_groups_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListGroupsRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListGroupsResponse()) - await client.list_groups(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_list_groups_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListGroupsResponse() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.list_groups( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - - -def test_list_groups_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.list_groups( - hub.ListGroupsRequest(), - parent='parent_value', - ) - -@pytest.mark.asyncio -async def test_list_groups_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListGroupsResponse() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListGroupsResponse()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.list_groups( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_list_groups_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.list_groups( - hub.ListGroupsRequest(), - parent='parent_value', - ) - - -def test_list_groups_pager(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListGroupsResponse( - groups=[ - hub.Group(), - hub.Group(), - hub.Group(), - ], - next_page_token='abc', - ), - hub.ListGroupsResponse( - groups=[], - next_page_token='def', - ), - hub.ListGroupsResponse( - groups=[ - hub.Group(), - ], - next_page_token='ghi', - ), - hub.ListGroupsResponse( - groups=[ - hub.Group(), - hub.Group(), - ], - ), - RuntimeError, - ) - - metadata = () - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ('parent', ''), - )), - ) - pager = client.list_groups(request={}) - - assert pager._metadata == metadata - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, hub.Group) - for i in results) -def test_list_groups_pages(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListGroupsResponse( - groups=[ - hub.Group(), - hub.Group(), - hub.Group(), - ], - next_page_token='abc', - ), - hub.ListGroupsResponse( - groups=[], - next_page_token='def', - ), - hub.ListGroupsResponse( - groups=[ - hub.Group(), - ], - next_page_token='ghi', - ), - hub.ListGroupsResponse( - groups=[ - hub.Group(), - hub.Group(), - ], - ), - RuntimeError, - ) - pages = list(client.list_groups(request={}).pages) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.asyncio -async def test_list_groups_async_pager(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListGroupsResponse( - groups=[ - hub.Group(), - hub.Group(), - hub.Group(), - ], - next_page_token='abc', - ), - hub.ListGroupsResponse( - groups=[], - next_page_token='def', - ), - hub.ListGroupsResponse( - groups=[ - hub.Group(), - ], - next_page_token='ghi', - ), - hub.ListGroupsResponse( - groups=[ - hub.Group(), - hub.Group(), - ], - ), - RuntimeError, - ) - async_pager = await client.list_groups(request={},) - assert async_pager.next_page_token == 'abc' - responses = [] - async for response in async_pager: # pragma: no branch - responses.append(response) - - assert len(responses) == 6 - assert all(isinstance(i, hub.Group) - for i in responses) - - -@pytest.mark.asyncio -async def test_list_groups_async_pages(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_groups), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListGroupsResponse( - groups=[ - hub.Group(), - hub.Group(), - hub.Group(), - ], - next_page_token='abc', - ), - hub.ListGroupsResponse( - groups=[], - next_page_token='def', - ), - hub.ListGroupsResponse( - groups=[ - hub.Group(), - ], - next_page_token='ghi', - ), - hub.ListGroupsResponse( - groups=[ - hub.Group(), - hub.Group(), - ], - ), - RuntimeError, - ) - pages = [] - # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` - # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 - async for page_ in ( # pragma: no branch - await client.list_groups(request={}) - ).pages: - pages.append(page_) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - - -def test_credentials_transport_error(): - # It is an error to provide credentials and a transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # It is an error to provide a credentials file and a transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = HubServiceClient( - client_options={"credentials_file": "credentials.json"}, - transport=transport, - ) - - # It is an error to provide an api_key and a transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - options = client_options.ClientOptions() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = HubServiceClient( - client_options=options, - transport=transport, - ) - - # It is an error to provide an api_key and a credential. - options = mock.Mock() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = HubServiceClient( - client_options=options, - credentials=ga_credentials.AnonymousCredentials() - ) - - # It is an error to provide scopes and a transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = HubServiceClient( - client_options={"scopes": ["1", "2"]}, - transport=transport, - ) - - -def test_transport_instance(): - # A client may be instantiated with a custom transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - client = HubServiceClient(transport=transport) - assert client.transport is transport - -def test_transport_get_channel(): - # A client may be instantiated with a custom transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - channel = transport.grpc_channel - assert channel - - transport = transports.HubServiceGrpcAsyncIOTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - channel = transport.grpc_channel - assert channel - -@pytest.mark.parametrize("transport_class", [ - transports.HubServiceGrpcTransport, - transports.HubServiceGrpcAsyncIOTransport, -]) -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() - -@pytest.mark.parametrize("transport_name", [ - "grpc", -]) -def test_transport_kind(transport_name): - transport = HubServiceClient.get_transport_class(transport_name)( - credentials=ga_credentials.AnonymousCredentials(), - ) - assert transport.kind == transport_name - -def test_transport_grpc_default(): - # A client should use the gRPC transport by default. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - assert isinstance( - client.transport, - transports.HubServiceGrpcTransport, - ) - -def test_hub_service_base_transport_error(): - # Passing both a credentials object and credentials_file should raise an error - with pytest.raises(core_exceptions.DuplicateCredentialArgs): - transport = transports.HubServiceTransport( - credentials=ga_credentials.AnonymousCredentials(), - credentials_file="credentials.json" - ) - - -def test_hub_service_base_transport(): - # Instantiate the base transport. - with mock.patch('google.cloud.networkconnectivity_v1.services.hub_service.transports.HubServiceTransport.__init__') as Transport: - Transport.return_value = None - transport = transports.HubServiceTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Every method on the transport should just blindly - # raise NotImplementedError. - methods = ( - 'list_hubs', - 'get_hub', - 'create_hub', - 'update_hub', - 'delete_hub', - 'list_hub_spokes', - 'list_spokes', - 'get_spoke', - 'create_spoke', - 'update_spoke', - 'reject_hub_spoke', - 'accept_hub_spoke', - 'delete_spoke', - 'get_route_table', - 'get_route', - 'list_routes', - 'list_route_tables', - 'get_group', - 'list_groups', - 'set_iam_policy', - 'get_iam_policy', - 'test_iam_permissions', - 'get_location', - 'list_locations', - 'get_operation', - 'cancel_operation', - 'delete_operation', - 'list_operations', - ) - for method in methods: - with pytest.raises(NotImplementedError): - getattr(transport, method)(request=object()) - - with pytest.raises(NotImplementedError): - transport.close() - - # Additionally, the LRO client (a property) should - # also raise NotImplementedError - with pytest.raises(NotImplementedError): - transport.operations_client - - # Catch all for all remaining methods and properties - remainder = [ - 'kind', - ] - for r in remainder: - with pytest.raises(NotImplementedError): - getattr(transport, r)() - - -def test_hub_service_base_transport_with_credentials_file(): - # Instantiate the base transport with a credentials file - with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.networkconnectivity_v1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages') as Transport: - Transport.return_value = None - load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.HubServiceTransport( - credentials_file="credentials.json", - quota_project_id="octopus", - ) - load_creds.assert_called_once_with("credentials.json", - scopes=None, - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - quota_project_id="octopus", - ) - - -def test_hub_service_base_transport_with_adc(): - # Test the default credentials are used if credentials and credentials_file are None. - with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.networkconnectivity_v1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages') as Transport: - Transport.return_value = None - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.HubServiceTransport() - adc.assert_called_once() - - -def test_hub_service_auth_adc(): - # If no credentials are provided, we should use ADC credentials. - with mock.patch.object(google.auth, 'default', autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - HubServiceClient() - adc.assert_called_once_with( - scopes=None, - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - quota_project_id=None, - ) - - -@pytest.mark.parametrize( - "transport_class", - [ - transports.HubServiceGrpcTransport, - transports.HubServiceGrpcAsyncIOTransport, - ], -) -def test_hub_service_transport_auth_adc(transport_class): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, 'default', autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class(quota_project_id="octopus", scopes=["1", "2"]) - adc.assert_called_once_with( - scopes=["1", "2"], - default_scopes=( 'https://www.googleapis.com/auth/cloud-platform',), - quota_project_id="octopus", - ) - - -@pytest.mark.parametrize( - "transport_class", - [ - transports.HubServiceGrpcTransport, - transports.HubServiceGrpcAsyncIOTransport, - ], -) -def test_hub_service_transport_auth_gdch_credentials(transport_class): - host = 'https://language.com' - api_audience_tests = [None, 'https://language2.com'] - api_audience_expect = [host, 'https://language2.com'] - for t, e in zip(api_audience_tests, api_audience_expect): - with mock.patch.object(google.auth, 'default', autospec=True) as adc: - gdch_mock = mock.MagicMock() - type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock) - adc.return_value = (gdch_mock, None) - transport_class(host=host, api_audience=t) - gdch_mock.with_gdch_audience.assert_called_once_with( - e - ) - - -@pytest.mark.parametrize( - "transport_class,grpc_helpers", - [ - (transports.HubServiceGrpcTransport, grpc_helpers), - (transports.HubServiceGrpcAsyncIOTransport, grpc_helpers_async) - ], -) -def test_hub_service_transport_create_channel(transport_class, grpc_helpers): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object( - grpc_helpers, "create_channel", autospec=True - ) as create_channel: - creds = ga_credentials.AnonymousCredentials() - adc.return_value = (creds, None) - transport_class( - quota_project_id="octopus", - scopes=["1", "2"] - ) - - create_channel.assert_called_with( - "networkconnectivity.googleapis.com:443", - credentials=creds, - credentials_file=None, - quota_project_id="octopus", - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - scopes=["1", "2"], - default_host="networkconnectivity.googleapis.com", - ssl_credentials=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - -@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) -def test_hub_service_grpc_transport_client_cert_source_for_mtls( - transport_class -): - cred = ga_credentials.AnonymousCredentials() - - # Check ssl_channel_credentials is used if provided. - with mock.patch.object(transport_class, "create_channel") as mock_create_channel: - mock_ssl_channel_creds = mock.Mock() - transport_class( - host="squid.clam.whelk", - credentials=cred, - ssl_channel_credentials=mock_ssl_channel_creds - ) - mock_create_channel.assert_called_once_with( - "squid.clam.whelk:443", - credentials=cred, - credentials_file=None, - scopes=None, - ssl_credentials=mock_ssl_channel_creds, - quota_project_id=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls - # is used. - with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()): - with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred: - transport_class( - credentials=cred, - client_cert_source_for_mtls=client_cert_source_callback - ) - expected_cert, expected_key = client_cert_source_callback() - mock_ssl_cred.assert_called_once_with( - certificate_chain=expected_cert, - private_key=expected_key - ) - - -@pytest.mark.parametrize("transport_name", [ - "grpc", - "grpc_asyncio", -]) -def test_hub_service_host_no_port(transport_name): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com'), - transport=transport_name, - ) - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:443' - ) - -@pytest.mark.parametrize("transport_name", [ - "grpc", - "grpc_asyncio", -]) -def test_hub_service_host_with_port(transport_name): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com:8000'), - transport=transport_name, - ) - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:8000' - ) - -def test_hub_service_grpc_transport_channel(): - channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials()) - - # Check that channel is used if provided. - transport = transports.HubServiceGrpcTransport( - host="squid.clam.whelk", - channel=channel, - ) - assert transport.grpc_channel == channel - assert transport._host == "squid.clam.whelk:443" - assert transport._ssl_channel_credentials == None - - -def test_hub_service_grpc_asyncio_transport_channel(): - channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials()) - - # Check that channel is used if provided. - transport = transports.HubServiceGrpcAsyncIOTransport( - host="squid.clam.whelk", - channel=channel, - ) - assert transport.grpc_channel == channel - assert transport._host == "squid.clam.whelk:443" - assert transport._ssl_channel_credentials == None - - -# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are -# removed from grpc/grpc_asyncio transport constructor. -@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) -def test_hub_service_transport_channel_mtls_with_client_cert_source( - transport_class -): - with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred: - with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: - mock_ssl_cred = mock.Mock() - grpc_ssl_channel_cred.return_value = mock_ssl_cred - - mock_grpc_channel = mock.Mock() - grpc_create_channel.return_value = mock_grpc_channel - - cred = ga_credentials.AnonymousCredentials() - with pytest.warns(DeprecationWarning): - with mock.patch.object(google.auth, 'default') as adc: - adc.return_value = (cred, None) - transport = transport_class( - host="squid.clam.whelk", - api_mtls_endpoint="mtls.squid.clam.whelk", - client_cert_source=client_cert_source_callback, - ) - adc.assert_called_once() - - grpc_ssl_channel_cred.assert_called_once_with( - certificate_chain=b"cert bytes", private_key=b"key bytes" - ) - grpc_create_channel.assert_called_once_with( - "mtls.squid.clam.whelk:443", - credentials=cred, - credentials_file=None, - scopes=None, - ssl_credentials=mock_ssl_cred, - quota_project_id=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - assert transport.grpc_channel == mock_grpc_channel - assert transport._ssl_channel_credentials == mock_ssl_cred - - -# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are -# removed from grpc/grpc_asyncio transport constructor. -@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) -def test_hub_service_transport_channel_mtls_with_adc( - transport_class -): - mock_ssl_cred = mock.Mock() - with mock.patch.multiple( - "google.auth.transport.grpc.SslCredentials", - __init__=mock.Mock(return_value=None), - ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred), - ): - with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: - mock_grpc_channel = mock.Mock() - grpc_create_channel.return_value = mock_grpc_channel - mock_cred = mock.Mock() - - with pytest.warns(DeprecationWarning): - transport = transport_class( - host="squid.clam.whelk", - credentials=mock_cred, - api_mtls_endpoint="mtls.squid.clam.whelk", - client_cert_source=None, - ) - - grpc_create_channel.assert_called_once_with( - "mtls.squid.clam.whelk:443", - credentials=mock_cred, - credentials_file=None, - scopes=None, - ssl_credentials=mock_ssl_cred, - quota_project_id=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - assert transport.grpc_channel == mock_grpc_channel - - -def test_hub_service_grpc_lro_client(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - transport = client.transport - - # Ensure that we have a api-core operations client. - assert isinstance( - transport.operations_client, - operations_v1.OperationsClient, - ) - - # Ensure that subsequent calls to the property send the exact same object. - assert transport.operations_client is transport.operations_client - - -def test_hub_service_grpc_lro_async_client(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc_asyncio', - ) - transport = client.transport - - # Ensure that we have a api-core operations client. - assert isinstance( - transport.operations_client, - operations_v1.OperationsAsyncClient, - ) - - # Ensure that subsequent calls to the property send the exact same object. - assert transport.operations_client is transport.operations_client - - -def test_group_path(): - project = "squid" - hub = "clam" - group = "whelk" - expected = "projects/{project}/locations/global/hubs/{hub}/groups/{group}".format(project=project, hub=hub, group=group, ) - actual = HubServiceClient.group_path(project, hub, group) - assert expected == actual - - -def test_parse_group_path(): - expected = { - "project": "octopus", - "hub": "oyster", - "group": "nudibranch", - } - path = HubServiceClient.group_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_group_path(path) - assert expected == actual - -def test_hub_path(): - project = "cuttlefish" - hub = "mussel" - expected = "projects/{project}/locations/global/hubs/{hub}".format(project=project, hub=hub, ) - actual = HubServiceClient.hub_path(project, hub) - assert expected == actual - - -def test_parse_hub_path(): - expected = { - "project": "winkle", - "hub": "nautilus", - } - path = HubServiceClient.hub_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_hub_path(path) - assert expected == actual - -def test_hub_route_path(): - project = "scallop" - hub = "abalone" - route_table = "squid" - route = "clam" - expected = "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}/routes/{route}".format(project=project, hub=hub, route_table=route_table, route=route, ) - actual = HubServiceClient.hub_route_path(project, hub, route_table, route) - assert expected == actual - - -def test_parse_hub_route_path(): - expected = { - "project": "whelk", - "hub": "octopus", - "route_table": "oyster", - "route": "nudibranch", - } - path = HubServiceClient.hub_route_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_hub_route_path(path) - assert expected == actual - -def test_instance_path(): - project = "cuttlefish" - zone = "mussel" - instance = "winkle" - expected = "projects/{project}/zones/{zone}/instances/{instance}".format(project=project, zone=zone, instance=instance, ) - actual = HubServiceClient.instance_path(project, zone, instance) - assert expected == actual - - -def test_parse_instance_path(): - expected = { - "project": "nautilus", - "zone": "scallop", - "instance": "abalone", - } - path = HubServiceClient.instance_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_instance_path(path) - assert expected == actual - -def test_interconnect_attachment_path(): - project = "squid" - region = "clam" - resource_id = "whelk" - expected = "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) - actual = HubServiceClient.interconnect_attachment_path(project, region, resource_id) - assert expected == actual - - -def test_parse_interconnect_attachment_path(): - expected = { - "project": "octopus", - "region": "oyster", - "resource_id": "nudibranch", - } - path = HubServiceClient.interconnect_attachment_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_interconnect_attachment_path(path) - assert expected == actual - -def test_network_path(): - project = "cuttlefish" - resource_id = "mussel" - expected = "projects/{project}/global/networks/{resource_id}".format(project=project, resource_id=resource_id, ) - actual = HubServiceClient.network_path(project, resource_id) - assert expected == actual - - -def test_parse_network_path(): - expected = { - "project": "winkle", - "resource_id": "nautilus", - } - path = HubServiceClient.network_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_network_path(path) - assert expected == actual - -def test_route_table_path(): - project = "scallop" - hub = "abalone" - route_table = "squid" - expected = "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}".format(project=project, hub=hub, route_table=route_table, ) - actual = HubServiceClient.route_table_path(project, hub, route_table) - assert expected == actual - - -def test_parse_route_table_path(): - expected = { - "project": "clam", - "hub": "whelk", - "route_table": "octopus", - } - path = HubServiceClient.route_table_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_route_table_path(path) - assert expected == actual - -def test_spoke_path(): - project = "oyster" - location = "nudibranch" - spoke = "cuttlefish" - expected = "projects/{project}/locations/{location}/spokes/{spoke}".format(project=project, location=location, spoke=spoke, ) - actual = HubServiceClient.spoke_path(project, location, spoke) - assert expected == actual - - -def test_parse_spoke_path(): - expected = { - "project": "mussel", - "location": "winkle", - "spoke": "nautilus", - } - path = HubServiceClient.spoke_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_spoke_path(path) - assert expected == actual - -def test_vpn_tunnel_path(): - project = "scallop" - region = "abalone" - resource_id = "squid" - expected = "projects/{project}/regions/{region}/vpnTunnels/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) - actual = HubServiceClient.vpn_tunnel_path(project, region, resource_id) - assert expected == actual - - -def test_parse_vpn_tunnel_path(): - expected = { - "project": "clam", - "region": "whelk", - "resource_id": "octopus", - } - path = HubServiceClient.vpn_tunnel_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_vpn_tunnel_path(path) - assert expected == actual - -def test_common_billing_account_path(): - billing_account = "oyster" - expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, ) - actual = HubServiceClient.common_billing_account_path(billing_account) - assert expected == actual - - -def test_parse_common_billing_account_path(): - expected = { - "billing_account": "nudibranch", - } - path = HubServiceClient.common_billing_account_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_billing_account_path(path) - assert expected == actual - -def test_common_folder_path(): - folder = "cuttlefish" - expected = "folders/{folder}".format(folder=folder, ) - actual = HubServiceClient.common_folder_path(folder) - assert expected == actual - - -def test_parse_common_folder_path(): - expected = { - "folder": "mussel", - } - path = HubServiceClient.common_folder_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_folder_path(path) - assert expected == actual - -def test_common_organization_path(): - organization = "winkle" - expected = "organizations/{organization}".format(organization=organization, ) - actual = HubServiceClient.common_organization_path(organization) - assert expected == actual - - -def test_parse_common_organization_path(): - expected = { - "organization": "nautilus", - } - path = HubServiceClient.common_organization_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_organization_path(path) - assert expected == actual - -def test_common_project_path(): - project = "scallop" - expected = "projects/{project}".format(project=project, ) - actual = HubServiceClient.common_project_path(project) - assert expected == actual - - -def test_parse_common_project_path(): - expected = { - "project": "abalone", - } - path = HubServiceClient.common_project_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_project_path(path) - assert expected == actual - -def test_common_location_path(): - project = "squid" - location = "clam" - expected = "projects/{project}/locations/{location}".format(project=project, location=location, ) - actual = HubServiceClient.common_location_path(project, location) - assert expected == actual - - -def test_parse_common_location_path(): - expected = { - "project": "whelk", - "location": "octopus", - } - path = HubServiceClient.common_location_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_location_path(path) - assert expected == actual - - -def test_client_with_default_client_info(): - client_info = gapic_v1.client_info.ClientInfo() - - with mock.patch.object(transports.HubServiceTransport, '_prep_wrapped_messages') as prep: - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - client_info=client_info, - ) - prep.assert_called_once_with(client_info) - - with mock.patch.object(transports.HubServiceTransport, '_prep_wrapped_messages') as prep: - transport_class = HubServiceClient.get_transport_class() - transport = transport_class( - credentials=ga_credentials.AnonymousCredentials(), - client_info=client_info, - ) - prep.assert_called_once_with(client_info) - -@pytest.mark.asyncio -async def test_transport_close_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport="grpc_asyncio", - ) - with mock.patch.object(type(getattr(client.transport, "grpc_channel")), "close") as close: - async with client: - close.assert_not_called() - close.assert_called_once() - - -def test_delete_operation(transport: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.DeleteOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = None - response = client.delete_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert response is None -@pytest.mark.asyncio -async def test_delete_operation_async(transport: str = "grpc"): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.DeleteOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - response = await client.delete_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert response is None - -def test_delete_operation_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.DeleteOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - call.return_value = None - - client.delete_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_delete_operation_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.DeleteOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - await client.delete_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_delete_operation_from_dict(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = None - - response = client.delete_operation( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_delete_operation_from_dict_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - response = await client.delete_operation( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_cancel_operation(transport: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.CancelOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = None - response = client.cancel_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert response is None -@pytest.mark.asyncio -async def test_cancel_operation_async(transport: str = "grpc"): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.CancelOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - response = await client.cancel_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert response is None - -def test_cancel_operation_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.CancelOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - call.return_value = None - - client.cancel_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_cancel_operation_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.CancelOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - await client.cancel_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_cancel_operation_from_dict(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = None - - response = client.cancel_operation( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_cancel_operation_from_dict_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - response = await client.cancel_operation( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_get_operation(transport: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.GetOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation() - response = client.get_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, operations_pb2.Operation) -@pytest.mark.asyncio -async def test_get_operation_async(transport: str = "grpc"): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.GetOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation() - ) - response = await client.get_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, operations_pb2.Operation) - -def test_get_operation_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.GetOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - call.return_value = operations_pb2.Operation() - - client.get_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_get_operation_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.GetOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation() - ) - await client.get_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_get_operation_from_dict(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation() - - response = client.get_operation( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_get_operation_from_dict_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation() - ) - response = await client.get_operation( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_list_operations(transport: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.ListOperationsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.ListOperationsResponse() - response = client.list_operations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, operations_pb2.ListOperationsResponse) -@pytest.mark.asyncio -async def test_list_operations_async(transport: str = "grpc"): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.ListOperationsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.ListOperationsResponse() - ) - response = await client.list_operations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, operations_pb2.ListOperationsResponse) - -def test_list_operations_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.ListOperationsRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - call.return_value = operations_pb2.ListOperationsResponse() - - client.list_operations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_list_operations_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.ListOperationsRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.ListOperationsResponse() - ) - await client.list_operations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_list_operations_from_dict(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.ListOperationsResponse() - - response = client.list_operations( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_list_operations_from_dict_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.ListOperationsResponse() - ) - response = await client.list_operations( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_list_locations(transport: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = locations_pb2.ListLocationsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = locations_pb2.ListLocationsResponse() - response = client.list_locations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, locations_pb2.ListLocationsResponse) -@pytest.mark.asyncio -async def test_list_locations_async(transport: str = "grpc"): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = locations_pb2.ListLocationsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.ListLocationsResponse() - ) - response = await client.list_locations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, locations_pb2.ListLocationsResponse) - -def test_list_locations_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = locations_pb2.ListLocationsRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - call.return_value = locations_pb2.ListLocationsResponse() - - client.list_locations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_list_locations_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = locations_pb2.ListLocationsRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.ListLocationsResponse() - ) - await client.list_locations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_list_locations_from_dict(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = locations_pb2.ListLocationsResponse() - - response = client.list_locations( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_list_locations_from_dict_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.ListLocationsResponse() - ) - response = await client.list_locations( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_get_location(transport: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = locations_pb2.GetLocationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_location), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = locations_pb2.Location() - response = client.get_location(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, locations_pb2.Location) -@pytest.mark.asyncio -async def test_get_location_async(transport: str = "grpc_asyncio"): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = locations_pb2.GetLocationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_location), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.Location() - ) - response = await client.get_location(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, locations_pb2.Location) - -def test_get_location_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials()) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = locations_pb2.GetLocationRequest() - request.name = "locations/abc" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_location), "__call__") as call: - call.return_value = locations_pb2.Location() - - client.get_location(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations/abc",) in kw["metadata"] -@pytest.mark.asyncio -async def test_get_location_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials() - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = locations_pb2.GetLocationRequest() - request.name = "locations/abc" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_location), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.Location() - ) - await client.get_location(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations/abc",) in kw["metadata"] - -def test_get_location_from_dict(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = locations_pb2.Location() - - response = client.get_location( - request={ - "name": "locations/abc", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_get_location_from_dict_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.Location() - ) - response = await client.get_location( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_set_iam_policy(transport: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.SetIamPolicyRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = policy_pb2.Policy(version=774, etag=b"etag_blob",) - response = client.set_iam_policy(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_pb2.Policy) - - assert response.version == 774 - - assert response.etag == b"etag_blob" -@pytest.mark.asyncio -async def test_set_iam_policy_async(transport: str = "grpc_asyncio"): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.SetIamPolicyRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - policy_pb2.Policy(version=774, etag=b"etag_blob",) - ) - response = await client.set_iam_policy(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_pb2.Policy) - - assert response.version == 774 - - assert response.etag == b"etag_blob" - -def test_set_iam_policy_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.SetIamPolicyRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - call.return_value = policy_pb2.Policy() - - client.set_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] -@pytest.mark.asyncio -async def test_set_iam_policy_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.SetIamPolicyRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy()) - - await client.set_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - -def test_set_iam_policy_from_dict(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = policy_pb2.Policy() - - response = client.set_iam_policy( - request={ - "resource": "resource_value", - "policy": policy_pb2.Policy(version=774), - } - ) - call.assert_called() - - -@pytest.mark.asyncio -async def test_set_iam_policy_from_dict_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - policy_pb2.Policy() - ) - - response = await client.set_iam_policy( - request={ - "resource": "resource_value", - "policy": policy_pb2.Policy(version=774), - } - ) - call.assert_called() - -def test_get_iam_policy(transport: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.GetIamPolicyRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = policy_pb2.Policy(version=774, etag=b"etag_blob",) - - response = client.get_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_pb2.Policy) - - assert response.version == 774 - - assert response.etag == b"etag_blob" - - -@pytest.mark.asyncio -async def test_get_iam_policy_async(transport: str = "grpc_asyncio"): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.GetIamPolicyRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_iam_policy), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - policy_pb2.Policy(version=774, etag=b"etag_blob",) - ) - - response = await client.get_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_pb2.Policy) - - assert response.version == 774 - - assert response.etag == b"etag_blob" - - -def test_get_iam_policy_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.GetIamPolicyRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: - call.return_value = policy_pb2.Policy() - - client.get_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - - -@pytest.mark.asyncio -async def test_get_iam_policy_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.GetIamPolicyRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_iam_policy), "__call__" - ) as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy()) - - await client.get_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - - -def test_get_iam_policy_from_dict(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = policy_pb2.Policy() - - response = client.get_iam_policy( - request={ - "resource": "resource_value", - "options": options_pb2.GetPolicyOptions(requested_policy_version=2598), - } - ) - call.assert_called() - -@pytest.mark.asyncio -async def test_get_iam_policy_from_dict_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - policy_pb2.Policy() - ) - - response = await client.get_iam_policy( - request={ - "resource": "resource_value", - "options": options_pb2.GetPolicyOptions(requested_policy_version=2598), - } - ) - call.assert_called() - -def test_test_iam_permissions(transport: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.TestIamPermissionsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = iam_policy_pb2.TestIamPermissionsResponse( - permissions=["permissions_value"], - ) - - response = client.test_iam_permissions(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse) - - assert response.permissions == ["permissions_value"] - - -@pytest.mark.asyncio -async def test_test_iam_permissions_async(transport: str = "grpc_asyncio"): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.TestIamPermissionsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - iam_policy_pb2.TestIamPermissionsResponse(permissions=["permissions_value"],) - ) - - response = await client.test_iam_permissions(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse) - - assert response.permissions == ["permissions_value"] - - -def test_test_iam_permissions_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.TestIamPermissionsRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - call.return_value = iam_policy_pb2.TestIamPermissionsResponse() - - client.test_iam_permissions(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - - -@pytest.mark.asyncio -async def test_test_iam_permissions_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.TestIamPermissionsRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - iam_policy_pb2.TestIamPermissionsResponse() - ) - - await client.test_iam_permissions(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - - -def test_test_iam_permissions_from_dict(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = iam_policy_pb2.TestIamPermissionsResponse() - - response = client.test_iam_permissions( - request={ - "resource": "resource_value", - "permissions": ["permissions_value"], - } - ) - call.assert_called() - -@pytest.mark.asyncio -async def test_test_iam_permissions_from_dict_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - iam_policy_pb2.TestIamPermissionsResponse() - ) - - response = await client.test_iam_permissions( - request={ - "resource": "resource_value", - "permissions": ["permissions_value"], - } - ) - call.assert_called() - -def test_transport_close(): - transports = { - "grpc": "_grpc_channel", - } - - for transport, close_name in transports.items(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport - ) - with mock.patch.object(type(getattr(client.transport, close_name)), "close") as close: - with client: - close.assert_not_called() - close.assert_called_once() - -def test_client_ctx(): - transports = [ - 'grpc', - ] - for transport in transports: - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport - ) - # Test client calls underlying transport. - with mock.patch.object(type(client.transport), "close") as close: - close.assert_not_called() - with client: - pass - close.assert_called() - -@pytest.mark.parametrize("client_class,transport_class", [ - (HubServiceClient, transports.HubServiceGrpcTransport), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport), -]) -def test_api_key_credentials(client_class, transport_class): - with mock.patch.object( - google.auth._default, "get_api_key_credentials", create=True - ) as get_api_key_credentials: - mock_cred = mock.Mock() - get_api_key_credentials.return_value = mock_cred - options = client_options.ClientOptions() - options.api_key = "api_key" - with mock.patch.object(transport_class, "__init__") as patched: - patched.return_value = None - client = client_class(client_options=options) - patched.assert_called_once_with( - credentials=mock_cred, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_policy_based_routing_service.py b/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_policy_based_routing_service.py deleted file mode 100644 index f213f8aebe1c..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1/tests/unit/gapic/networkconnectivity_v1/test_policy_based_routing_service.py +++ /dev/null @@ -1,3640 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import os -# try/except added for compatibility with python < 3.8 -try: - from unittest import mock - from unittest.mock import AsyncMock # pragma: NO COVER -except ImportError: # pragma: NO COVER - import mock - -import grpc -from grpc.experimental import aio -import math -import pytest -from proto.marshal.rules.dates import DurationRule, TimestampRule -from proto.marshal.rules import wrappers - -from google.api_core import client_options -from google.api_core import exceptions as core_exceptions -from google.api_core import future -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers -from google.api_core import grpc_helpers_async -from google.api_core import operation -from google.api_core import operation_async # type: ignore -from google.api_core import operations_v1 -from google.api_core import path_template -from google.auth import credentials as ga_credentials -from google.auth.exceptions import MutualTLSChannelError -from google.cloud.location import locations_pb2 -from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import PolicyBasedRoutingServiceAsyncClient -from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import PolicyBasedRoutingServiceClient -from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import pagers -from google.cloud.networkconnectivity_v1.services.policy_based_routing_service import transports -from google.cloud.networkconnectivity_v1.types import common -from google.cloud.networkconnectivity_v1.types import policy_based_routing -from google.iam.v1 import iam_policy_pb2 # type: ignore -from google.iam.v1 import options_pb2 # type: ignore -from google.iam.v1 import policy_pb2 # type: ignore -from google.longrunning import operations_pb2 # type: ignore -from google.oauth2 import service_account -from google.protobuf import empty_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore -import google.auth - - -def client_cert_source_callback(): - return b"cert bytes", b"key bytes" - - -# If default endpoint is localhost, then default mtls endpoint will be the same. -# This method modifies the default endpoint so the client can produce a different -# mtls endpoint for endpoint testing purposes. -def modify_default_endpoint(client): - return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT - - -def test__get_default_mtls_endpoint(): - api_endpoint = "example.googleapis.com" - api_mtls_endpoint = "example.mtls.googleapis.com" - sandbox_endpoint = "example.sandbox.googleapis.com" - sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com" - non_googleapi = "api.example.com" - - assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(None) is None - assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint - assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint - assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint - assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint - assert PolicyBasedRoutingServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi - - -@pytest.mark.parametrize("client_class,transport_name", [ - (PolicyBasedRoutingServiceClient, "grpc"), - (PolicyBasedRoutingServiceAsyncClient, "grpc_asyncio"), -]) -def test_policy_based_routing_service_client_from_service_account_info(client_class, transport_name): - creds = ga_credentials.AnonymousCredentials() - with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory: - factory.return_value = creds - info = {"valid": True} - client = client_class.from_service_account_info(info, transport=transport_name) - assert client.transport._credentials == creds - assert isinstance(client, client_class) - - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:443' - ) - - -@pytest.mark.parametrize("transport_class,transport_name", [ - (transports.PolicyBasedRoutingServiceGrpcTransport, "grpc"), - (transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio"), -]) -def test_policy_based_routing_service_client_service_account_always_use_jwt(transport_class, transport_name): - with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: - creds = service_account.Credentials(None, None, None) - transport = transport_class(credentials=creds, always_use_jwt_access=True) - use_jwt.assert_called_once_with(True) - - with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: - creds = service_account.Credentials(None, None, None) - transport = transport_class(credentials=creds, always_use_jwt_access=False) - use_jwt.assert_not_called() - - -@pytest.mark.parametrize("client_class,transport_name", [ - (PolicyBasedRoutingServiceClient, "grpc"), - (PolicyBasedRoutingServiceAsyncClient, "grpc_asyncio"), -]) -def test_policy_based_routing_service_client_from_service_account_file(client_class, transport_name): - creds = ga_credentials.AnonymousCredentials() - with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory: - factory.return_value = creds - client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name) - assert client.transport._credentials == creds - assert isinstance(client, client_class) - - client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name) - assert client.transport._credentials == creds - assert isinstance(client, client_class) - - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:443' - ) - - -def test_policy_based_routing_service_client_get_transport_class(): - transport = PolicyBasedRoutingServiceClient.get_transport_class() - available_transports = [ - transports.PolicyBasedRoutingServiceGrpcTransport, - ] - assert transport in available_transports - - transport = PolicyBasedRoutingServiceClient.get_transport_class("grpc") - assert transport == transports.PolicyBasedRoutingServiceGrpcTransport - - -@pytest.mark.parametrize("client_class,transport_class,transport_name", [ - (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc"), - (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio"), -]) -@mock.patch.object(PolicyBasedRoutingServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceClient)) -@mock.patch.object(PolicyBasedRoutingServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceAsyncClient)) -def test_policy_based_routing_service_client_client_options(client_class, transport_class, transport_name): - # Check that if channel is provided we won't create a new one. - with mock.patch.object(PolicyBasedRoutingServiceClient, 'get_transport_class') as gtc: - transport = transport_class( - credentials=ga_credentials.AnonymousCredentials() - ) - client = client_class(transport=transport) - gtc.assert_not_called() - - # Check that if channel is provided via str we will create a new one. - with mock.patch.object(PolicyBasedRoutingServiceClient, 'get_transport_class') as gtc: - client = client_class(transport=transport_name) - gtc.assert_called() - - # Check the case api_endpoint is provided. - options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(transport=transport_name, client_options=options) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host="squid.clam.whelk", - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is - # "never". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is - # "always". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_MTLS_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has - # unsupported value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}): - with pytest.raises(MutualTLSChannelError): - client = client_class(transport=transport_name) - - # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}): - with pytest.raises(ValueError): - client = client_class(transport=transport_name) - - # Check the case quota_project_id is provided - options = client_options.ClientOptions(quota_project_id="octopus") - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id="octopus", - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - # Check the case api_endpoint is provided - options = client_options.ClientOptions(api_audience="https://language.googleapis.com") - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience="https://language.googleapis.com" - ) - -@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [ - (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc", "true"), - (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"), - (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc", "false"), - (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"), -]) -@mock.patch.object(PolicyBasedRoutingServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceClient)) -@mock.patch.object(PolicyBasedRoutingServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceAsyncClient)) -@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}) -def test_policy_based_routing_service_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env): - # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default - # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists. - - # Check the case client_cert_source is provided. Whether client cert is used depends on - # GOOGLE_API_USE_CLIENT_CERTIFICATE value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): - options = client_options.ClientOptions(client_cert_source=client_cert_source_callback) - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - - if use_client_cert_env == "false": - expected_client_cert_source = None - expected_host = client.DEFAULT_ENDPOINT - else: - expected_client_cert_source = client_cert_source_callback - expected_host = client.DEFAULT_MTLS_ENDPOINT - - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=expected_host, - scopes=None, - client_cert_source_for_mtls=expected_client_cert_source, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case ADC client cert is provided. Whether client cert is used depends on - # GOOGLE_API_USE_CLIENT_CERTIFICATE value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): - with mock.patch.object(transport_class, '__init__') as patched: - with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): - with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback): - if use_client_cert_env == "false": - expected_host = client.DEFAULT_ENDPOINT - expected_client_cert_source = None - else: - expected_host = client.DEFAULT_MTLS_ENDPOINT - expected_client_cert_source = client_cert_source_callback - - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=expected_host, - scopes=None, - client_cert_source_for_mtls=expected_client_cert_source, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case client_cert_source and ADC client cert are not provided. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): - with mock.patch.object(transport_class, '__init__') as patched: - with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False): - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - -@pytest.mark.parametrize("client_class", [ - PolicyBasedRoutingServiceClient, PolicyBasedRoutingServiceAsyncClient -]) -@mock.patch.object(PolicyBasedRoutingServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceClient)) -@mock.patch.object(PolicyBasedRoutingServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(PolicyBasedRoutingServiceAsyncClient)) -def test_policy_based_routing_service_client_get_mtls_endpoint_and_cert_source(client_class): - mock_client_cert_source = mock.Mock() - - # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): - mock_api_endpoint = "foo" - options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) - assert api_endpoint == mock_api_endpoint - assert cert_source == mock_client_cert_source - - # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}): - mock_client_cert_source = mock.Mock() - mock_api_endpoint = "foo" - options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) - assert api_endpoint == mock_api_endpoint - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_ENDPOINT - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): - with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_ENDPOINT - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): - with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): - with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT - assert cert_source == mock_client_cert_source - - -@pytest.mark.parametrize("client_class,transport_class,transport_name", [ - (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc"), - (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio"), -]) -def test_policy_based_routing_service_client_client_options_scopes(client_class, transport_class, transport_name): - # Check the case scopes are provided. - options = client_options.ClientOptions( - scopes=["1", "2"], - ) - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=["1", "2"], - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - -@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ - (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc", grpc_helpers), - (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), -]) -def test_policy_based_routing_service_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers): - # Check the case credentials file is provided. - options = client_options.ClientOptions( - credentials_file="credentials.json" - ) - - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file="credentials.json", - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - -def test_policy_based_routing_service_client_client_options_from_dict(): - with mock.patch('google.cloud.networkconnectivity_v1.services.policy_based_routing_service.transports.PolicyBasedRoutingServiceGrpcTransport.__init__') as grpc_transport: - grpc_transport.return_value = None - client = PolicyBasedRoutingServiceClient( - client_options={'api_endpoint': 'squid.clam.whelk'} - ) - grpc_transport.assert_called_once_with( - credentials=None, - credentials_file=None, - host="squid.clam.whelk", - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - -@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ - (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport, "grpc", grpc_helpers), - (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), -]) -def test_policy_based_routing_service_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers): - # Check the case credentials file is provided. - options = client_options.ClientOptions( - credentials_file="credentials.json" - ) - - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file="credentials.json", - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # test that the credentials from file are saved and used as the credentials. - with mock.patch.object( - google.auth, "load_credentials_from_file", autospec=True - ) as load_creds, mock.patch.object( - google.auth, "default", autospec=True - ) as adc, mock.patch.object( - grpc_helpers, "create_channel" - ) as create_channel: - creds = ga_credentials.AnonymousCredentials() - file_creds = ga_credentials.AnonymousCredentials() - load_creds.return_value = (file_creds, None) - adc.return_value = (creds, None) - client = client_class(client_options=options, transport=transport_name) - create_channel.assert_called_with( - "networkconnectivity.googleapis.com:443", - credentials=file_creds, - credentials_file=None, - quota_project_id=None, - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - scopes=None, - default_host="networkconnectivity.googleapis.com", - ssl_credentials=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - -@pytest.mark.parametrize("request_type", [ - policy_based_routing.ListPolicyBasedRoutesRequest, - dict, -]) -def test_list_policy_based_routes(request_type, transport: str = 'grpc'): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = policy_based_routing.ListPolicyBasedRoutesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - ) - response = client.list_policy_based_routes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.ListPolicyBasedRoutesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListPolicyBasedRoutesPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -def test_list_policy_based_routes_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__') as call: - client.list_policy_based_routes() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.ListPolicyBasedRoutesRequest() - -@pytest.mark.asyncio -async def test_list_policy_based_routes_async(transport: str = 'grpc_asyncio', request_type=policy_based_routing.ListPolicyBasedRoutesRequest): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.ListPolicyBasedRoutesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - )) - response = await client.list_policy_based_routes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.ListPolicyBasedRoutesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListPolicyBasedRoutesAsyncPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -@pytest.mark.asyncio -async def test_list_policy_based_routes_async_from_dict(): - await test_list_policy_based_routes_async(request_type=dict) - - -def test_list_policy_based_routes_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = policy_based_routing.ListPolicyBasedRoutesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__') as call: - call.return_value = policy_based_routing.ListPolicyBasedRoutesResponse() - client.list_policy_based_routes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_list_policy_based_routes_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = policy_based_routing.ListPolicyBasedRoutesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.ListPolicyBasedRoutesResponse()) - await client.list_policy_based_routes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_list_policy_based_routes_flattened(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = policy_based_routing.ListPolicyBasedRoutesResponse() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.list_policy_based_routes( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - - -def test_list_policy_based_routes_flattened_error(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.list_policy_based_routes( - policy_based_routing.ListPolicyBasedRoutesRequest(), - parent='parent_value', - ) - -@pytest.mark.asyncio -async def test_list_policy_based_routes_flattened_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = policy_based_routing.ListPolicyBasedRoutesResponse() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.ListPolicyBasedRoutesResponse()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.list_policy_based_routes( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_list_policy_based_routes_flattened_error_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.list_policy_based_routes( - policy_based_routing.ListPolicyBasedRoutesRequest(), - parent='parent_value', - ) - - -def test_list_policy_based_routes_pager(transport_name: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - ], - next_page_token='abc', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[], - next_page_token='def', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - ], - next_page_token='ghi', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - ], - ), - RuntimeError, - ) - - metadata = () - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ('parent', ''), - )), - ) - pager = client.list_policy_based_routes(request={}) - - assert pager._metadata == metadata - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, policy_based_routing.PolicyBasedRoute) - for i in results) -def test_list_policy_based_routes_pages(transport_name: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - ], - next_page_token='abc', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[], - next_page_token='def', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - ], - next_page_token='ghi', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - ], - ), - RuntimeError, - ) - pages = list(client.list_policy_based_routes(request={}).pages) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.asyncio -async def test_list_policy_based_routes_async_pager(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - ], - next_page_token='abc', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[], - next_page_token='def', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - ], - next_page_token='ghi', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - ], - ), - RuntimeError, - ) - async_pager = await client.list_policy_based_routes(request={},) - assert async_pager.next_page_token == 'abc' - responses = [] - async for response in async_pager: # pragma: no branch - responses.append(response) - - assert len(responses) == 6 - assert all(isinstance(i, policy_based_routing.PolicyBasedRoute) - for i in responses) - - -@pytest.mark.asyncio -async def test_list_policy_based_routes_async_pages(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_policy_based_routes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - ], - next_page_token='abc', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[], - next_page_token='def', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - ], - next_page_token='ghi', - ), - policy_based_routing.ListPolicyBasedRoutesResponse( - policy_based_routes=[ - policy_based_routing.PolicyBasedRoute(), - policy_based_routing.PolicyBasedRoute(), - ], - ), - RuntimeError, - ) - pages = [] - # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` - # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 - async for page_ in ( # pragma: no branch - await client.list_policy_based_routes(request={}) - ).pages: - pages.append(page_) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.parametrize("request_type", [ - policy_based_routing.GetPolicyBasedRouteRequest, - dict, -]) -def test_get_policy_based_route(request_type, transport: str = 'grpc'): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = policy_based_routing.PolicyBasedRoute( - name='name_value', - description='description_value', - network='network_value', - priority=898, - self_link='self_link_value', - kind='kind_value', - next_hop_ilb_ip='next_hop_ilb_ip_value', - ) - response = client.get_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.GetPolicyBasedRouteRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_based_routing.PolicyBasedRoute) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.network == 'network_value' - assert response.priority == 898 - assert response.self_link == 'self_link_value' - assert response.kind == 'kind_value' - - -def test_get_policy_based_route_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_policy_based_route), - '__call__') as call: - client.get_policy_based_route() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.GetPolicyBasedRouteRequest() - -@pytest.mark.asyncio -async def test_get_policy_based_route_async(transport: str = 'grpc_asyncio', request_type=policy_based_routing.GetPolicyBasedRouteRequest): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.PolicyBasedRoute( - name='name_value', - description='description_value', - network='network_value', - priority=898, - self_link='self_link_value', - kind='kind_value', - )) - response = await client.get_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.GetPolicyBasedRouteRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_based_routing.PolicyBasedRoute) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.network == 'network_value' - assert response.priority == 898 - assert response.self_link == 'self_link_value' - assert response.kind == 'kind_value' - - -@pytest.mark.asyncio -async def test_get_policy_based_route_async_from_dict(): - await test_get_policy_based_route_async(request_type=dict) - - -def test_get_policy_based_route_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = policy_based_routing.GetPolicyBasedRouteRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_policy_based_route), - '__call__') as call: - call.return_value = policy_based_routing.PolicyBasedRoute() - client.get_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_get_policy_based_route_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = policy_based_routing.GetPolicyBasedRouteRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_policy_based_route), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.PolicyBasedRoute()) - await client.get_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_get_policy_based_route_flattened(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = policy_based_routing.PolicyBasedRoute() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.get_policy_based_route( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_get_policy_based_route_flattened_error(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.get_policy_based_route( - policy_based_routing.GetPolicyBasedRouteRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_get_policy_based_route_flattened_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = policy_based_routing.PolicyBasedRoute() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_based_routing.PolicyBasedRoute()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.get_policy_based_route( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_get_policy_based_route_flattened_error_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.get_policy_based_route( - policy_based_routing.GetPolicyBasedRouteRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - policy_based_routing.CreatePolicyBasedRouteRequest, - dict, -]) -def test_create_policy_based_route(request_type, transport: str = 'grpc'): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.create_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.CreatePolicyBasedRouteRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_create_policy_based_route_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_policy_based_route), - '__call__') as call: - client.create_policy_based_route() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.CreatePolicyBasedRouteRequest() - -@pytest.mark.asyncio -async def test_create_policy_based_route_async(transport: str = 'grpc_asyncio', request_type=policy_based_routing.CreatePolicyBasedRouteRequest): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.create_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.CreatePolicyBasedRouteRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_create_policy_based_route_async_from_dict(): - await test_create_policy_based_route_async(request_type=dict) - - -def test_create_policy_based_route_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = policy_based_routing.CreatePolicyBasedRouteRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_policy_based_route), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.create_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_create_policy_based_route_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = policy_based_routing.CreatePolicyBasedRouteRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_policy_based_route), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.create_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_create_policy_based_route_flattened(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.create_policy_based_route( - parent='parent_value', - policy_based_route=policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])), - policy_based_route_id='policy_based_route_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].policy_based_route - mock_val = policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])) - assert arg == mock_val - arg = args[0].policy_based_route_id - mock_val = 'policy_based_route_id_value' - assert arg == mock_val - - -def test_create_policy_based_route_flattened_error(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.create_policy_based_route( - policy_based_routing.CreatePolicyBasedRouteRequest(), - parent='parent_value', - policy_based_route=policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])), - policy_based_route_id='policy_based_route_id_value', - ) - -@pytest.mark.asyncio -async def test_create_policy_based_route_flattened_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.create_policy_based_route( - parent='parent_value', - policy_based_route=policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])), - policy_based_route_id='policy_based_route_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].policy_based_route - mock_val = policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])) - assert arg == mock_val - arg = args[0].policy_based_route_id - mock_val = 'policy_based_route_id_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_create_policy_based_route_flattened_error_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.create_policy_based_route( - policy_based_routing.CreatePolicyBasedRouteRequest(), - parent='parent_value', - policy_based_route=policy_based_routing.PolicyBasedRoute(virtual_machine=policy_based_routing.PolicyBasedRoute.VirtualMachine(tags=['tags_value'])), - policy_based_route_id='policy_based_route_id_value', - ) - - -@pytest.mark.parametrize("request_type", [ - policy_based_routing.DeletePolicyBasedRouteRequest, - dict, -]) -def test_delete_policy_based_route(request_type, transport: str = 'grpc'): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.delete_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.DeletePolicyBasedRouteRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_delete_policy_based_route_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_policy_based_route), - '__call__') as call: - client.delete_policy_based_route() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.DeletePolicyBasedRouteRequest() - -@pytest.mark.asyncio -async def test_delete_policy_based_route_async(transport: str = 'grpc_asyncio', request_type=policy_based_routing.DeletePolicyBasedRouteRequest): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.delete_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == policy_based_routing.DeletePolicyBasedRouteRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_delete_policy_based_route_async_from_dict(): - await test_delete_policy_based_route_async(request_type=dict) - - -def test_delete_policy_based_route_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = policy_based_routing.DeletePolicyBasedRouteRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_policy_based_route), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.delete_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_delete_policy_based_route_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = policy_based_routing.DeletePolicyBasedRouteRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_policy_based_route), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.delete_policy_based_route(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_delete_policy_based_route_flattened(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.delete_policy_based_route( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_delete_policy_based_route_flattened_error(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.delete_policy_based_route( - policy_based_routing.DeletePolicyBasedRouteRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_delete_policy_based_route_flattened_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_policy_based_route), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.delete_policy_based_route( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_delete_policy_based_route_flattened_error_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.delete_policy_based_route( - policy_based_routing.DeletePolicyBasedRouteRequest(), - name='name_value', - ) - - -def test_credentials_transport_error(): - # It is an error to provide credentials and a transport instance. - transport = transports.PolicyBasedRoutingServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # It is an error to provide a credentials file and a transport instance. - transport = transports.PolicyBasedRoutingServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = PolicyBasedRoutingServiceClient( - client_options={"credentials_file": "credentials.json"}, - transport=transport, - ) - - # It is an error to provide an api_key and a transport instance. - transport = transports.PolicyBasedRoutingServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - options = client_options.ClientOptions() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = PolicyBasedRoutingServiceClient( - client_options=options, - transport=transport, - ) - - # It is an error to provide an api_key and a credential. - options = mock.Mock() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = PolicyBasedRoutingServiceClient( - client_options=options, - credentials=ga_credentials.AnonymousCredentials() - ) - - # It is an error to provide scopes and a transport instance. - transport = transports.PolicyBasedRoutingServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = PolicyBasedRoutingServiceClient( - client_options={"scopes": ["1", "2"]}, - transport=transport, - ) - - -def test_transport_instance(): - # A client may be instantiated with a custom transport instance. - transport = transports.PolicyBasedRoutingServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - client = PolicyBasedRoutingServiceClient(transport=transport) - assert client.transport is transport - -def test_transport_get_channel(): - # A client may be instantiated with a custom transport instance. - transport = transports.PolicyBasedRoutingServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - channel = transport.grpc_channel - assert channel - - transport = transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - channel = transport.grpc_channel - assert channel - -@pytest.mark.parametrize("transport_class", [ - transports.PolicyBasedRoutingServiceGrpcTransport, - transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, -]) -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() - -@pytest.mark.parametrize("transport_name", [ - "grpc", -]) -def test_transport_kind(transport_name): - transport = PolicyBasedRoutingServiceClient.get_transport_class(transport_name)( - credentials=ga_credentials.AnonymousCredentials(), - ) - assert transport.kind == transport_name - -def test_transport_grpc_default(): - # A client should use the gRPC transport by default. - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - assert isinstance( - client.transport, - transports.PolicyBasedRoutingServiceGrpcTransport, - ) - -def test_policy_based_routing_service_base_transport_error(): - # Passing both a credentials object and credentials_file should raise an error - with pytest.raises(core_exceptions.DuplicateCredentialArgs): - transport = transports.PolicyBasedRoutingServiceTransport( - credentials=ga_credentials.AnonymousCredentials(), - credentials_file="credentials.json" - ) - - -def test_policy_based_routing_service_base_transport(): - # Instantiate the base transport. - with mock.patch('google.cloud.networkconnectivity_v1.services.policy_based_routing_service.transports.PolicyBasedRoutingServiceTransport.__init__') as Transport: - Transport.return_value = None - transport = transports.PolicyBasedRoutingServiceTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Every method on the transport should just blindly - # raise NotImplementedError. - methods = ( - 'list_policy_based_routes', - 'get_policy_based_route', - 'create_policy_based_route', - 'delete_policy_based_route', - 'set_iam_policy', - 'get_iam_policy', - 'test_iam_permissions', - 'get_location', - 'list_locations', - 'get_operation', - 'cancel_operation', - 'delete_operation', - 'list_operations', - ) - for method in methods: - with pytest.raises(NotImplementedError): - getattr(transport, method)(request=object()) - - with pytest.raises(NotImplementedError): - transport.close() - - # Additionally, the LRO client (a property) should - # also raise NotImplementedError - with pytest.raises(NotImplementedError): - transport.operations_client - - # Catch all for all remaining methods and properties - remainder = [ - 'kind', - ] - for r in remainder: - with pytest.raises(NotImplementedError): - getattr(transport, r)() - - -def test_policy_based_routing_service_base_transport_with_credentials_file(): - # Instantiate the base transport with a credentials file - with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.networkconnectivity_v1.services.policy_based_routing_service.transports.PolicyBasedRoutingServiceTransport._prep_wrapped_messages') as Transport: - Transport.return_value = None - load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.PolicyBasedRoutingServiceTransport( - credentials_file="credentials.json", - quota_project_id="octopus", - ) - load_creds.assert_called_once_with("credentials.json", - scopes=None, - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - quota_project_id="octopus", - ) - - -def test_policy_based_routing_service_base_transport_with_adc(): - # Test the default credentials are used if credentials and credentials_file are None. - with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.networkconnectivity_v1.services.policy_based_routing_service.transports.PolicyBasedRoutingServiceTransport._prep_wrapped_messages') as Transport: - Transport.return_value = None - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.PolicyBasedRoutingServiceTransport() - adc.assert_called_once() - - -def test_policy_based_routing_service_auth_adc(): - # If no credentials are provided, we should use ADC credentials. - with mock.patch.object(google.auth, 'default', autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - PolicyBasedRoutingServiceClient() - adc.assert_called_once_with( - scopes=None, - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - quota_project_id=None, - ) - - -@pytest.mark.parametrize( - "transport_class", - [ - transports.PolicyBasedRoutingServiceGrpcTransport, - transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, - ], -) -def test_policy_based_routing_service_transport_auth_adc(transport_class): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, 'default', autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class(quota_project_id="octopus", scopes=["1", "2"]) - adc.assert_called_once_with( - scopes=["1", "2"], - default_scopes=( 'https://www.googleapis.com/auth/cloud-platform',), - quota_project_id="octopus", - ) - - -@pytest.mark.parametrize( - "transport_class", - [ - transports.PolicyBasedRoutingServiceGrpcTransport, - transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, - ], -) -def test_policy_based_routing_service_transport_auth_gdch_credentials(transport_class): - host = 'https://language.com' - api_audience_tests = [None, 'https://language2.com'] - api_audience_expect = [host, 'https://language2.com'] - for t, e in zip(api_audience_tests, api_audience_expect): - with mock.patch.object(google.auth, 'default', autospec=True) as adc: - gdch_mock = mock.MagicMock() - type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock) - adc.return_value = (gdch_mock, None) - transport_class(host=host, api_audience=t) - gdch_mock.with_gdch_audience.assert_called_once_with( - e - ) - - -@pytest.mark.parametrize( - "transport_class,grpc_helpers", - [ - (transports.PolicyBasedRoutingServiceGrpcTransport, grpc_helpers), - (transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport, grpc_helpers_async) - ], -) -def test_policy_based_routing_service_transport_create_channel(transport_class, grpc_helpers): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object( - grpc_helpers, "create_channel", autospec=True - ) as create_channel: - creds = ga_credentials.AnonymousCredentials() - adc.return_value = (creds, None) - transport_class( - quota_project_id="octopus", - scopes=["1", "2"] - ) - - create_channel.assert_called_with( - "networkconnectivity.googleapis.com:443", - credentials=creds, - credentials_file=None, - quota_project_id="octopus", - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - scopes=["1", "2"], - default_host="networkconnectivity.googleapis.com", - ssl_credentials=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - -@pytest.mark.parametrize("transport_class", [transports.PolicyBasedRoutingServiceGrpcTransport, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport]) -def test_policy_based_routing_service_grpc_transport_client_cert_source_for_mtls( - transport_class -): - cred = ga_credentials.AnonymousCredentials() - - # Check ssl_channel_credentials is used if provided. - with mock.patch.object(transport_class, "create_channel") as mock_create_channel: - mock_ssl_channel_creds = mock.Mock() - transport_class( - host="squid.clam.whelk", - credentials=cred, - ssl_channel_credentials=mock_ssl_channel_creds - ) - mock_create_channel.assert_called_once_with( - "squid.clam.whelk:443", - credentials=cred, - credentials_file=None, - scopes=None, - ssl_credentials=mock_ssl_channel_creds, - quota_project_id=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls - # is used. - with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()): - with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred: - transport_class( - credentials=cred, - client_cert_source_for_mtls=client_cert_source_callback - ) - expected_cert, expected_key = client_cert_source_callback() - mock_ssl_cred.assert_called_once_with( - certificate_chain=expected_cert, - private_key=expected_key - ) - - -@pytest.mark.parametrize("transport_name", [ - "grpc", - "grpc_asyncio", -]) -def test_policy_based_routing_service_host_no_port(transport_name): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com'), - transport=transport_name, - ) - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:443' - ) - -@pytest.mark.parametrize("transport_name", [ - "grpc", - "grpc_asyncio", -]) -def test_policy_based_routing_service_host_with_port(transport_name): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com:8000'), - transport=transport_name, - ) - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:8000' - ) - -def test_policy_based_routing_service_grpc_transport_channel(): - channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials()) - - # Check that channel is used if provided. - transport = transports.PolicyBasedRoutingServiceGrpcTransport( - host="squid.clam.whelk", - channel=channel, - ) - assert transport.grpc_channel == channel - assert transport._host == "squid.clam.whelk:443" - assert transport._ssl_channel_credentials == None - - -def test_policy_based_routing_service_grpc_asyncio_transport_channel(): - channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials()) - - # Check that channel is used if provided. - transport = transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport( - host="squid.clam.whelk", - channel=channel, - ) - assert transport.grpc_channel == channel - assert transport._host == "squid.clam.whelk:443" - assert transport._ssl_channel_credentials == None - - -# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are -# removed from grpc/grpc_asyncio transport constructor. -@pytest.mark.parametrize("transport_class", [transports.PolicyBasedRoutingServiceGrpcTransport, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport]) -def test_policy_based_routing_service_transport_channel_mtls_with_client_cert_source( - transport_class -): - with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred: - with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: - mock_ssl_cred = mock.Mock() - grpc_ssl_channel_cred.return_value = mock_ssl_cred - - mock_grpc_channel = mock.Mock() - grpc_create_channel.return_value = mock_grpc_channel - - cred = ga_credentials.AnonymousCredentials() - with pytest.warns(DeprecationWarning): - with mock.patch.object(google.auth, 'default') as adc: - adc.return_value = (cred, None) - transport = transport_class( - host="squid.clam.whelk", - api_mtls_endpoint="mtls.squid.clam.whelk", - client_cert_source=client_cert_source_callback, - ) - adc.assert_called_once() - - grpc_ssl_channel_cred.assert_called_once_with( - certificate_chain=b"cert bytes", private_key=b"key bytes" - ) - grpc_create_channel.assert_called_once_with( - "mtls.squid.clam.whelk:443", - credentials=cred, - credentials_file=None, - scopes=None, - ssl_credentials=mock_ssl_cred, - quota_project_id=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - assert transport.grpc_channel == mock_grpc_channel - assert transport._ssl_channel_credentials == mock_ssl_cred - - -# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are -# removed from grpc/grpc_asyncio transport constructor. -@pytest.mark.parametrize("transport_class", [transports.PolicyBasedRoutingServiceGrpcTransport, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport]) -def test_policy_based_routing_service_transport_channel_mtls_with_adc( - transport_class -): - mock_ssl_cred = mock.Mock() - with mock.patch.multiple( - "google.auth.transport.grpc.SslCredentials", - __init__=mock.Mock(return_value=None), - ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred), - ): - with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: - mock_grpc_channel = mock.Mock() - grpc_create_channel.return_value = mock_grpc_channel - mock_cred = mock.Mock() - - with pytest.warns(DeprecationWarning): - transport = transport_class( - host="squid.clam.whelk", - credentials=mock_cred, - api_mtls_endpoint="mtls.squid.clam.whelk", - client_cert_source=None, - ) - - grpc_create_channel.assert_called_once_with( - "mtls.squid.clam.whelk:443", - credentials=mock_cred, - credentials_file=None, - scopes=None, - ssl_credentials=mock_ssl_cred, - quota_project_id=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - assert transport.grpc_channel == mock_grpc_channel - - -def test_policy_based_routing_service_grpc_lro_client(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - transport = client.transport - - # Ensure that we have a api-core operations client. - assert isinstance( - transport.operations_client, - operations_v1.OperationsClient, - ) - - # Ensure that subsequent calls to the property send the exact same object. - assert transport.operations_client is transport.operations_client - - -def test_policy_based_routing_service_grpc_lro_async_client(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc_asyncio', - ) - transport = client.transport - - # Ensure that we have a api-core operations client. - assert isinstance( - transport.operations_client, - operations_v1.OperationsAsyncClient, - ) - - # Ensure that subsequent calls to the property send the exact same object. - assert transport.operations_client is transport.operations_client - - -def test_network_path(): - project = "squid" - resource_id = "clam" - expected = "projects/{project}/global/networks/{resource_id}".format(project=project, resource_id=resource_id, ) - actual = PolicyBasedRoutingServiceClient.network_path(project, resource_id) - assert expected == actual - - -def test_parse_network_path(): - expected = { - "project": "whelk", - "resource_id": "octopus", - } - path = PolicyBasedRoutingServiceClient.network_path(**expected) - - # Check that the path construction is reversible. - actual = PolicyBasedRoutingServiceClient.parse_network_path(path) - assert expected == actual - -def test_policy_based_route_path(): - project = "oyster" - policy_based_route = "nudibranch" - expected = "projects/{project}/locations/global/PolicyBasedRoutes/{policy_based_route}".format(project=project, policy_based_route=policy_based_route, ) - actual = PolicyBasedRoutingServiceClient.policy_based_route_path(project, policy_based_route) - assert expected == actual - - -def test_parse_policy_based_route_path(): - expected = { - "project": "cuttlefish", - "policy_based_route": "mussel", - } - path = PolicyBasedRoutingServiceClient.policy_based_route_path(**expected) - - # Check that the path construction is reversible. - actual = PolicyBasedRoutingServiceClient.parse_policy_based_route_path(path) - assert expected == actual - -def test_common_billing_account_path(): - billing_account = "winkle" - expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, ) - actual = PolicyBasedRoutingServiceClient.common_billing_account_path(billing_account) - assert expected == actual - - -def test_parse_common_billing_account_path(): - expected = { - "billing_account": "nautilus", - } - path = PolicyBasedRoutingServiceClient.common_billing_account_path(**expected) - - # Check that the path construction is reversible. - actual = PolicyBasedRoutingServiceClient.parse_common_billing_account_path(path) - assert expected == actual - -def test_common_folder_path(): - folder = "scallop" - expected = "folders/{folder}".format(folder=folder, ) - actual = PolicyBasedRoutingServiceClient.common_folder_path(folder) - assert expected == actual - - -def test_parse_common_folder_path(): - expected = { - "folder": "abalone", - } - path = PolicyBasedRoutingServiceClient.common_folder_path(**expected) - - # Check that the path construction is reversible. - actual = PolicyBasedRoutingServiceClient.parse_common_folder_path(path) - assert expected == actual - -def test_common_organization_path(): - organization = "squid" - expected = "organizations/{organization}".format(organization=organization, ) - actual = PolicyBasedRoutingServiceClient.common_organization_path(organization) - assert expected == actual - - -def test_parse_common_organization_path(): - expected = { - "organization": "clam", - } - path = PolicyBasedRoutingServiceClient.common_organization_path(**expected) - - # Check that the path construction is reversible. - actual = PolicyBasedRoutingServiceClient.parse_common_organization_path(path) - assert expected == actual - -def test_common_project_path(): - project = "whelk" - expected = "projects/{project}".format(project=project, ) - actual = PolicyBasedRoutingServiceClient.common_project_path(project) - assert expected == actual - - -def test_parse_common_project_path(): - expected = { - "project": "octopus", - } - path = PolicyBasedRoutingServiceClient.common_project_path(**expected) - - # Check that the path construction is reversible. - actual = PolicyBasedRoutingServiceClient.parse_common_project_path(path) - assert expected == actual - -def test_common_location_path(): - project = "oyster" - location = "nudibranch" - expected = "projects/{project}/locations/{location}".format(project=project, location=location, ) - actual = PolicyBasedRoutingServiceClient.common_location_path(project, location) - assert expected == actual - - -def test_parse_common_location_path(): - expected = { - "project": "cuttlefish", - "location": "mussel", - } - path = PolicyBasedRoutingServiceClient.common_location_path(**expected) - - # Check that the path construction is reversible. - actual = PolicyBasedRoutingServiceClient.parse_common_location_path(path) - assert expected == actual - - -def test_client_with_default_client_info(): - client_info = gapic_v1.client_info.ClientInfo() - - with mock.patch.object(transports.PolicyBasedRoutingServiceTransport, '_prep_wrapped_messages') as prep: - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - client_info=client_info, - ) - prep.assert_called_once_with(client_info) - - with mock.patch.object(transports.PolicyBasedRoutingServiceTransport, '_prep_wrapped_messages') as prep: - transport_class = PolicyBasedRoutingServiceClient.get_transport_class() - transport = transport_class( - credentials=ga_credentials.AnonymousCredentials(), - client_info=client_info, - ) - prep.assert_called_once_with(client_info) - -@pytest.mark.asyncio -async def test_transport_close_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport="grpc_asyncio", - ) - with mock.patch.object(type(getattr(client.transport, "grpc_channel")), "close") as close: - async with client: - close.assert_not_called() - close.assert_called_once() - - -def test_delete_operation(transport: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.DeleteOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = None - response = client.delete_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert response is None -@pytest.mark.asyncio -async def test_delete_operation_async(transport: str = "grpc"): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.DeleteOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - response = await client.delete_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert response is None - -def test_delete_operation_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.DeleteOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - call.return_value = None - - client.delete_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_delete_operation_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.DeleteOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - await client.delete_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_delete_operation_from_dict(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = None - - response = client.delete_operation( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_delete_operation_from_dict_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - response = await client.delete_operation( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_cancel_operation(transport: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.CancelOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = None - response = client.cancel_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert response is None -@pytest.mark.asyncio -async def test_cancel_operation_async(transport: str = "grpc"): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.CancelOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - response = await client.cancel_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert response is None - -def test_cancel_operation_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.CancelOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - call.return_value = None - - client.cancel_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_cancel_operation_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.CancelOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - await client.cancel_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_cancel_operation_from_dict(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = None - - response = client.cancel_operation( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_cancel_operation_from_dict_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.cancel_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - None - ) - response = await client.cancel_operation( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_get_operation(transport: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.GetOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation() - response = client.get_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, operations_pb2.Operation) -@pytest.mark.asyncio -async def test_get_operation_async(transport: str = "grpc"): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.GetOperationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation() - ) - response = await client.get_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, operations_pb2.Operation) - -def test_get_operation_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.GetOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - call.return_value = operations_pb2.Operation() - - client.get_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_get_operation_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.GetOperationRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation() - ) - await client.get_operation(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_get_operation_from_dict(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation() - - response = client.get_operation( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_get_operation_from_dict_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_operation), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation() - ) - response = await client.get_operation( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_list_operations(transport: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.ListOperationsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.ListOperationsResponse() - response = client.list_operations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, operations_pb2.ListOperationsResponse) -@pytest.mark.asyncio -async def test_list_operations_async(transport: str = "grpc"): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = operations_pb2.ListOperationsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.ListOperationsResponse() - ) - response = await client.list_operations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, operations_pb2.ListOperationsResponse) - -def test_list_operations_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.ListOperationsRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - call.return_value = operations_pb2.ListOperationsResponse() - - client.list_operations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_list_operations_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = operations_pb2.ListOperationsRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.ListOperationsResponse() - ) - await client.list_operations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_list_operations_from_dict(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.ListOperationsResponse() - - response = client.list_operations( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_list_operations_from_dict_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_operations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.ListOperationsResponse() - ) - response = await client.list_operations( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_list_locations(transport: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = locations_pb2.ListLocationsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = locations_pb2.ListLocationsResponse() - response = client.list_locations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, locations_pb2.ListLocationsResponse) -@pytest.mark.asyncio -async def test_list_locations_async(transport: str = "grpc"): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = locations_pb2.ListLocationsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.ListLocationsResponse() - ) - response = await client.list_locations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, locations_pb2.ListLocationsResponse) - -def test_list_locations_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = locations_pb2.ListLocationsRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - call.return_value = locations_pb2.ListLocationsResponse() - - client.list_locations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] -@pytest.mark.asyncio -async def test_list_locations_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = locations_pb2.ListLocationsRequest() - request.name = "locations" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.ListLocationsResponse() - ) - await client.list_locations(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations",) in kw["metadata"] - -def test_list_locations_from_dict(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = locations_pb2.ListLocationsResponse() - - response = client.list_locations( - request={ - "name": "locations", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_list_locations_from_dict_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.ListLocationsResponse() - ) - response = await client.list_locations( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_get_location(transport: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = locations_pb2.GetLocationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_location), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = locations_pb2.Location() - response = client.get_location(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, locations_pb2.Location) -@pytest.mark.asyncio -async def test_get_location_async(transport: str = "grpc_asyncio"): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = locations_pb2.GetLocationRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_location), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.Location() - ) - response = await client.get_location(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, locations_pb2.Location) - -def test_get_location_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials()) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = locations_pb2.GetLocationRequest() - request.name = "locations/abc" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_location), "__call__") as call: - call.return_value = locations_pb2.Location() - - client.get_location(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations/abc",) in kw["metadata"] -@pytest.mark.asyncio -async def test_get_location_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials() - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = locations_pb2.GetLocationRequest() - request.name = "locations/abc" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_location), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.Location() - ) - await client.get_location(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "name=locations/abc",) in kw["metadata"] - -def test_get_location_from_dict(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = locations_pb2.Location() - - response = client.get_location( - request={ - "name": "locations/abc", - } - ) - call.assert_called() -@pytest.mark.asyncio -async def test_get_location_from_dict_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_locations), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - locations_pb2.Location() - ) - response = await client.get_location( - request={ - "name": "locations", - } - ) - call.assert_called() - - -def test_set_iam_policy(transport: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.SetIamPolicyRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = policy_pb2.Policy(version=774, etag=b"etag_blob",) - response = client.set_iam_policy(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_pb2.Policy) - - assert response.version == 774 - - assert response.etag == b"etag_blob" -@pytest.mark.asyncio -async def test_set_iam_policy_async(transport: str = "grpc_asyncio"): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.SetIamPolicyRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - policy_pb2.Policy(version=774, etag=b"etag_blob",) - ) - response = await client.set_iam_policy(request) - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_pb2.Policy) - - assert response.version == 774 - - assert response.etag == b"etag_blob" - -def test_set_iam_policy_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.SetIamPolicyRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - call.return_value = policy_pb2.Policy() - - client.set_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] -@pytest.mark.asyncio -async def test_set_iam_policy_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.SetIamPolicyRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy()) - - await client.set_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - -def test_set_iam_policy_from_dict(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = policy_pb2.Policy() - - response = client.set_iam_policy( - request={ - "resource": "resource_value", - "policy": policy_pb2.Policy(version=774), - } - ) - call.assert_called() - - -@pytest.mark.asyncio -async def test_set_iam_policy_from_dict_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.set_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - policy_pb2.Policy() - ) - - response = await client.set_iam_policy( - request={ - "resource": "resource_value", - "policy": policy_pb2.Policy(version=774), - } - ) - call.assert_called() - -def test_get_iam_policy(transport: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.GetIamPolicyRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = policy_pb2.Policy(version=774, etag=b"etag_blob",) - - response = client.get_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_pb2.Policy) - - assert response.version == 774 - - assert response.etag == b"etag_blob" - - -@pytest.mark.asyncio -async def test_get_iam_policy_async(transport: str = "grpc_asyncio"): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.GetIamPolicyRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_iam_policy), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - policy_pb2.Policy(version=774, etag=b"etag_blob",) - ) - - response = await client.get_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, policy_pb2.Policy) - - assert response.version == 774 - - assert response.etag == b"etag_blob" - - -def test_get_iam_policy_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.GetIamPolicyRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: - call.return_value = policy_pb2.Policy() - - client.get_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - - -@pytest.mark.asyncio -async def test_get_iam_policy_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.GetIamPolicyRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_iam_policy), "__call__" - ) as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(policy_pb2.Policy()) - - await client.get_iam_policy(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - - -def test_get_iam_policy_from_dict(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = policy_pb2.Policy() - - response = client.get_iam_policy( - request={ - "resource": "resource_value", - "options": options_pb2.GetPolicyOptions(requested_policy_version=2598), - } - ) - call.assert_called() - -@pytest.mark.asyncio -async def test_get_iam_policy_from_dict_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_iam_policy), "__call__") as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - policy_pb2.Policy() - ) - - response = await client.get_iam_policy( - request={ - "resource": "resource_value", - "options": options_pb2.GetPolicyOptions(requested_policy_version=2598), - } - ) - call.assert_called() - -def test_test_iam_permissions(transport: str = "grpc"): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.TestIamPermissionsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = iam_policy_pb2.TestIamPermissionsResponse( - permissions=["permissions_value"], - ) - - response = client.test_iam_permissions(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse) - - assert response.permissions == ["permissions_value"] - - -@pytest.mark.asyncio -async def test_test_iam_permissions_async(transport: str = "grpc_asyncio"): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = iam_policy_pb2.TestIamPermissionsRequest() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - iam_policy_pb2.TestIamPermissionsResponse(permissions=["permissions_value"],) - ) - - response = await client.test_iam_permissions(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - - assert args[0] == request - - # Establish that the response is the type that we expect. - assert isinstance(response, iam_policy_pb2.TestIamPermissionsResponse) - - assert response.permissions == ["permissions_value"] - - -def test_test_iam_permissions_field_headers(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.TestIamPermissionsRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - call.return_value = iam_policy_pb2.TestIamPermissionsResponse() - - client.test_iam_permissions(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - - -@pytest.mark.asyncio -async def test_test_iam_permissions_field_headers_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = iam_policy_pb2.TestIamPermissionsRequest() - request.resource = "resource/value" - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - iam_policy_pb2.TestIamPermissionsResponse() - ) - - await client.test_iam_permissions(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ("x-goog-request-params", "resource=resource/value",) in kw["metadata"] - - -def test_test_iam_permissions_from_dict(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = iam_policy_pb2.TestIamPermissionsResponse() - - response = client.test_iam_permissions( - request={ - "resource": "resource_value", - "permissions": ["permissions_value"], - } - ) - call.assert_called() - -@pytest.mark.asyncio -async def test_test_iam_permissions_from_dict_async(): - client = PolicyBasedRoutingServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.test_iam_permissions), "__call__" - ) as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - iam_policy_pb2.TestIamPermissionsResponse() - ) - - response = await client.test_iam_permissions( - request={ - "resource": "resource_value", - "permissions": ["permissions_value"], - } - ) - call.assert_called() - -def test_transport_close(): - transports = { - "grpc": "_grpc_channel", - } - - for transport, close_name in transports.items(): - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport - ) - with mock.patch.object(type(getattr(client.transport, close_name)), "close") as close: - with client: - close.assert_not_called() - close.assert_called_once() - -def test_client_ctx(): - transports = [ - 'grpc', - ] - for transport in transports: - client = PolicyBasedRoutingServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport - ) - # Test client calls underlying transport. - with mock.patch.object(type(client.transport), "close") as close: - close.assert_not_called() - with client: - pass - close.assert_called() - -@pytest.mark.parametrize("client_class,transport_class", [ - (PolicyBasedRoutingServiceClient, transports.PolicyBasedRoutingServiceGrpcTransport), - (PolicyBasedRoutingServiceAsyncClient, transports.PolicyBasedRoutingServiceGrpcAsyncIOTransport), -]) -def test_api_key_credentials(client_class, transport_class): - with mock.patch.object( - google.auth._default, "get_api_key_credentials", create=True - ) as get_api_key_credentials: - mock_cred = mock.Mock() - get_api_key_credentials.return_value = mock_cred - options = client_options.ClientOptions() - options.api_key = "api_key" - with mock.patch.object(transport_class, "__init__") as patched: - patched.return_value = None - client = client_class(client_options=options) - patched.assert_called_once_with( - credentials=mock_cred, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.coveragerc b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.coveragerc deleted file mode 100644 index 068c27e778ef..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.coveragerc +++ /dev/null @@ -1,13 +0,0 @@ -[run] -branch = True - -[report] -show_missing = True -omit = - google/cloud/networkconnectivity/__init__.py - google/cloud/networkconnectivity/gapic_version.py -exclude_lines = - # Re-enable the standard pragma - pragma: NO COVER - # Ignore debug-only repr - def __repr__ diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.flake8 b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.flake8 deleted file mode 100644 index 29227d4cf419..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/.flake8 +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright 2020 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 -# -# https://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 by synthtool. DO NOT EDIT! -[flake8] -ignore = E203, E266, E501, W503 -exclude = - # Exclude generated code. - **/proto/** - **/gapic/** - **/services/** - **/types/** - *_pb2.py - - # Standard linting exemptions. - **/.nox/** - __pycache__, - .git, - *.pyc, - conf.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/MANIFEST.in b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/MANIFEST.in deleted file mode 100644 index fab57468d64e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/MANIFEST.in +++ /dev/null @@ -1,2 +0,0 @@ -recursive-include google/cloud/networkconnectivity *.py -recursive-include google/cloud/networkconnectivity_v1alpha1 *.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/README.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/README.rst deleted file mode 100644 index d9dfc30e72fc..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/README.rst +++ /dev/null @@ -1,49 +0,0 @@ -Python Client for Google Cloud Networkconnectivity API -================================================= - -Quick Start ------------ - -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 Google Cloud Networkconnectivity API. -4. `Setup 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 -.. _Setup Authentication.: https://googleapis.dev/python/google-api-core/latest/auth.html - -Installation -~~~~~~~~~~~~ - -Install this library in a `virtualenv`_ using pip. `virtualenv`_ is a tool to -create isolated Python environments. The basic problem it addresses is one of -dependencies and versions, and indirectly permissions. - -With `virtualenv`_, it's possible to install this library without needing system -install permissions, and without clashing with the installed system -dependencies. - -.. _`virtualenv`: https://virtualenv.pypa.io/en/latest/ - - -Mac/Linux -^^^^^^^^^ - -.. code-block:: console - - python3 -m venv - source /bin/activate - /bin/pip install /path/to/library - - -Windows -^^^^^^^ - -.. code-block:: console - - python3 -m venv - \Scripts\activate - \Scripts\pip.exe install \path\to\library diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/_static/custom.css b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/_static/custom.css deleted file mode 100644 index 06423be0b592..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/_static/custom.css +++ /dev/null @@ -1,3 +0,0 @@ -dl.field-list > dt { - min-width: 100px -} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/conf.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/conf.py deleted file mode 100644 index 8ab4790aa30b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/conf.py +++ /dev/null @@ -1,376 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -# -# google-cloud-network-connectivity documentation build configuration file -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os -import shlex - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath("..")) - -__version__ = "0.1.0" - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -needs_sphinx = "4.0.1" - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.autosummary", - "sphinx.ext.intersphinx", - "sphinx.ext.coverage", - "sphinx.ext.napoleon", - "sphinx.ext.todo", - "sphinx.ext.viewcode", -] - -# autodoc/autosummary flags -autoclass_content = "both" -autodoc_default_flags = ["members"] -autosummary_generate = True - - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# Allow markdown includes (so releases.md can include CHANGLEOG.md) -# http://www.sphinx-doc.org/en/master/markdown.html -source_parsers = {".md": "recommonmark.parser.CommonMarkParser"} - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -source_suffix = [".rst", ".md"] - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The root toctree document. -root_doc = "index" - -# General information about the project. -project = u"google-cloud-network-connectivity" -copyright = u"2023, Google, LLC" -author = u"Google APIs" # TODO: autogenerate this bit - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The full version, including alpha/beta/rc tags. -release = __version__ -# The short X.Y version. -version = ".".join(release.split(".")[0:2]) - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = 'en' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ["_build"] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = "sphinx" - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = True - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = "alabaster" - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -html_theme_options = { - "description": "Google Cloud Client Libraries for Python", - "github_user": "googleapis", - "github_repo": "google-cloud-python", - "github_banner": True, - "font_family": "'Roboto', Georgia, sans", - "head_font_family": "'Roboto', Georgia, serif", - "code_font_family": "'Roboto Mono', 'Consolas', monospace", -} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ["_static"] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -# html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -# html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -# html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -# html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = "google-cloud-network-connectivity-doc" - -# -- Options for warnings ------------------------------------------------------ - - -suppress_warnings = [ - # Temporarily suppress this to avoid "more than one target found for - # cross-reference" warning, which are intractable for us to avoid while in - # a mono-repo. - # See https://github.com/sphinx-doc/sphinx/blob - # /2a65ffeef5c107c19084fabdd706cdff3f52d93c/sphinx/domains/python.py#L843 - "ref.python" -] - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. - # 'preamble': '', - # Latex figure (float) alignment - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ( - root_doc, - "google-cloud-network-connectivity.tex", - u"google-cloud-network-connectivity Documentation", - author, - "manual", - ) -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ( - root_doc, - "google-cloud-network-connectivity", - u"Google Cloud Networkconnectivity Documentation", - [author], - 1, - ) -] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ( - root_doc, - "google-cloud-network-connectivity", - u"google-cloud-network-connectivity Documentation", - author, - "google-cloud-network-connectivity", - "GAPIC library for Google Cloud Networkconnectivity API", - "APIs", - ) -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False - - -# Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = { - "python": ("http://python.readthedocs.org/en/latest/", None), - "gax": ("https://gax-python.readthedocs.org/en/latest/", None), - "google-auth": ("https://google-auth.readthedocs.io/en/stable", None), - "google-gax": ("https://gax-python.readthedocs.io/en/latest/", None), - "google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None), - "grpc": ("https://grpc.io/grpc/python/", None), - "requests": ("http://requests.kennethreitz.org/en/stable/", None), - "proto": ("https://proto-plus-python.readthedocs.io/en/stable", None), - "protobuf": ("https://googleapis.dev/python/protobuf/latest/", None), -} - - -# Napoleon settings -napoleon_google_docstring = True -napoleon_numpy_docstring = True -napoleon_include_private_with_doc = False -napoleon_include_special_with_doc = True -napoleon_use_admonition_for_examples = False -napoleon_use_admonition_for_notes = False -napoleon_use_admonition_for_references = False -napoleon_use_ivar = False -napoleon_use_param = True -napoleon_use_rtype = True diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/index.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/index.rst deleted file mode 100644 index 1ba9e8169aa0..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/index.rst +++ /dev/null @@ -1,7 +0,0 @@ -API Reference -------------- -.. toctree:: - :maxdepth: 2 - - networkconnectivity_v1alpha1/services - networkconnectivity_v1alpha1/types diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/hub_service.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/hub_service.rst deleted file mode 100644 index f07f3feab53e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/hub_service.rst +++ /dev/null @@ -1,10 +0,0 @@ -HubService ----------------------------- - -.. automodule:: google.cloud.networkconnectivity_v1alpha1.services.hub_service - :members: - :inherited-members: - -.. automodule:: google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers - :members: - :inherited-members: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/services.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/services.rst deleted file mode 100644 index 161761c40841..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/services.rst +++ /dev/null @@ -1,6 +0,0 @@ -Services for Google Cloud Networkconnectivity v1alpha1 API -========================================================== -.. toctree:: - :maxdepth: 2 - - hub_service diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/types.rst b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/types.rst deleted file mode 100644 index 82985cd2bbc3..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/docs/networkconnectivity_v1alpha1/types.rst +++ /dev/null @@ -1,6 +0,0 @@ -Types for Google Cloud Networkconnectivity v1alpha1 API -======================================================= - -.. automodule:: google.cloud.networkconnectivity_v1alpha1.types - :members: - :show-inheritance: diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/__init__.py deleted file mode 100644 index 48c01489722c..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/__init__.py +++ /dev/null @@ -1,61 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from google.cloud.networkconnectivity import gapic_version as package_version - -__version__ = package_version.__version__ - - -from google.cloud.networkconnectivity_v1alpha1.services.hub_service.client import HubServiceClient -from google.cloud.networkconnectivity_v1alpha1.services.hub_service.async_client import HubServiceAsyncClient - -from google.cloud.networkconnectivity_v1alpha1.types.common import OperationMetadata -from google.cloud.networkconnectivity_v1alpha1.types.hub import CreateHubRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import CreateSpokeRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import DeleteHubRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import DeleteSpokeRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import GetHubRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import GetSpokeRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import Hub -from google.cloud.networkconnectivity_v1alpha1.types.hub import ListHubsRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import ListHubsResponse -from google.cloud.networkconnectivity_v1alpha1.types.hub import ListSpokesRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import ListSpokesResponse -from google.cloud.networkconnectivity_v1alpha1.types.hub import RouterApplianceInstance -from google.cloud.networkconnectivity_v1alpha1.types.hub import Spoke -from google.cloud.networkconnectivity_v1alpha1.types.hub import UpdateHubRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import UpdateSpokeRequest -from google.cloud.networkconnectivity_v1alpha1.types.hub import State - -__all__ = ('HubServiceClient', - 'HubServiceAsyncClient', - 'OperationMetadata', - 'CreateHubRequest', - 'CreateSpokeRequest', - 'DeleteHubRequest', - 'DeleteSpokeRequest', - 'GetHubRequest', - 'GetSpokeRequest', - 'Hub', - 'ListHubsRequest', - 'ListHubsResponse', - 'ListSpokesRequest', - 'ListSpokesResponse', - 'RouterApplianceInstance', - 'Spoke', - 'UpdateHubRequest', - 'UpdateSpokeRequest', - 'State', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/gapic_version.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/gapic_version.py deleted file mode 100644 index 360a0d13ebdd..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/gapic_version.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -__version__ = "0.0.0" # {x-release-please-version} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/py.typed b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/py.typed deleted file mode 100644 index cf2368140f5e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity/py.typed +++ /dev/null @@ -1,2 +0,0 @@ -# Marker file for PEP 561. -# The google-cloud-network-connectivity package uses inline types. diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/__init__.py deleted file mode 100644 index 3794503a0b9c..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/__init__.py +++ /dev/null @@ -1,62 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from google.cloud.networkconnectivity_v1alpha1 import gapic_version as package_version - -__version__ = package_version.__version__ - - -from .services.hub_service import HubServiceClient -from .services.hub_service import HubServiceAsyncClient - -from .types.common import OperationMetadata -from .types.hub import CreateHubRequest -from .types.hub import CreateSpokeRequest -from .types.hub import DeleteHubRequest -from .types.hub import DeleteSpokeRequest -from .types.hub import GetHubRequest -from .types.hub import GetSpokeRequest -from .types.hub import Hub -from .types.hub import ListHubsRequest -from .types.hub import ListHubsResponse -from .types.hub import ListSpokesRequest -from .types.hub import ListSpokesResponse -from .types.hub import RouterApplianceInstance -from .types.hub import Spoke -from .types.hub import UpdateHubRequest -from .types.hub import UpdateSpokeRequest -from .types.hub import State - -__all__ = ( - 'HubServiceAsyncClient', -'CreateHubRequest', -'CreateSpokeRequest', -'DeleteHubRequest', -'DeleteSpokeRequest', -'GetHubRequest', -'GetSpokeRequest', -'Hub', -'HubServiceClient', -'ListHubsRequest', -'ListHubsResponse', -'ListSpokesRequest', -'ListSpokesResponse', -'OperationMetadata', -'RouterApplianceInstance', -'Spoke', -'State', -'UpdateHubRequest', -'UpdateSpokeRequest', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_metadata.json b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_metadata.json deleted file mode 100644 index d6600f02713b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_metadata.json +++ /dev/null @@ -1,123 +0,0 @@ - { - "comment": "This file maps proto services/RPCs to the corresponding library clients/methods", - "language": "python", - "libraryPackage": "google.cloud.networkconnectivity_v1alpha1", - "protoPackage": "google.cloud.networkconnectivity.v1alpha1", - "schema": "1.0", - "services": { - "HubService": { - "clients": { - "grpc": { - "libraryClient": "HubServiceClient", - "rpcs": { - "CreateHub": { - "methods": [ - "create_hub" - ] - }, - "CreateSpoke": { - "methods": [ - "create_spoke" - ] - }, - "DeleteHub": { - "methods": [ - "delete_hub" - ] - }, - "DeleteSpoke": { - "methods": [ - "delete_spoke" - ] - }, - "GetHub": { - "methods": [ - "get_hub" - ] - }, - "GetSpoke": { - "methods": [ - "get_spoke" - ] - }, - "ListHubs": { - "methods": [ - "list_hubs" - ] - }, - "ListSpokes": { - "methods": [ - "list_spokes" - ] - }, - "UpdateHub": { - "methods": [ - "update_hub" - ] - }, - "UpdateSpoke": { - "methods": [ - "update_spoke" - ] - } - } - }, - "grpc-async": { - "libraryClient": "HubServiceAsyncClient", - "rpcs": { - "CreateHub": { - "methods": [ - "create_hub" - ] - }, - "CreateSpoke": { - "methods": [ - "create_spoke" - ] - }, - "DeleteHub": { - "methods": [ - "delete_hub" - ] - }, - "DeleteSpoke": { - "methods": [ - "delete_spoke" - ] - }, - "GetHub": { - "methods": [ - "get_hub" - ] - }, - "GetSpoke": { - "methods": [ - "get_spoke" - ] - }, - "ListHubs": { - "methods": [ - "list_hubs" - ] - }, - "ListSpokes": { - "methods": [ - "list_spokes" - ] - }, - "UpdateHub": { - "methods": [ - "update_hub" - ] - }, - "UpdateSpoke": { - "methods": [ - "update_spoke" - ] - } - } - } - } - } - } -} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_version.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_version.py deleted file mode 100644 index 360a0d13ebdd..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/gapic_version.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -__version__ = "0.0.0" # {x-release-please-version} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/py.typed b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/py.typed deleted file mode 100644 index cf2368140f5e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/py.typed +++ /dev/null @@ -1,2 +0,0 @@ -# Marker file for PEP 561. -# The google-cloud-network-connectivity package uses inline types. diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/__init__.py deleted file mode 100644 index 89a37dc92c5a..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/__init__.py deleted file mode 100644 index 3baa4e89a4e6..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from .client import HubServiceClient -from .async_client import HubServiceAsyncClient - -__all__ = ( - 'HubServiceClient', - 'HubServiceAsyncClient', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py deleted file mode 100644 index f76893de3684..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/async_client.py +++ /dev/null @@ -1,1437 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from collections import OrderedDict -import functools -import re -from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union - -from google.cloud.networkconnectivity_v1alpha1 import gapic_version as package_version - -from google.api_core.client_options import ClientOptions -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import retry as retries -from google.auth import credentials as ga_credentials # type: ignore -from google.oauth2 import service_account # type: ignore - -try: - OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] -except AttributeError: # pragma: NO COVER - OptionalRetry = Union[retries.Retry, object] # type: ignore - -from google.api_core import operation # type: ignore -from google.api_core import operation_async # type: ignore -from google.cloud.networkconnectivity_v1alpha1.services.hub_service import pagers -from google.cloud.networkconnectivity_v1alpha1.types import common -from google.cloud.networkconnectivity_v1alpha1.types import hub -from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub -from google.protobuf import empty_pb2 # type: ignore -from google.protobuf import field_mask_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore -from .transports.base import HubServiceTransport, DEFAULT_CLIENT_INFO -from .transports.grpc_asyncio import HubServiceGrpcAsyncIOTransport -from .client import HubServiceClient - - -class HubServiceAsyncClient: - """Network Connectivity Center is a hub-and-spoke abstraction - for network connectivity management in Google Cloud. It reduces - operational complexity through a simple, centralized - connectivity management model. - """ - - _client: HubServiceClient - - DEFAULT_ENDPOINT = HubServiceClient.DEFAULT_ENDPOINT - DEFAULT_MTLS_ENDPOINT = HubServiceClient.DEFAULT_MTLS_ENDPOINT - - hub_path = staticmethod(HubServiceClient.hub_path) - parse_hub_path = staticmethod(HubServiceClient.parse_hub_path) - instance_path = staticmethod(HubServiceClient.instance_path) - parse_instance_path = staticmethod(HubServiceClient.parse_instance_path) - interconnect_attachment_path = staticmethod(HubServiceClient.interconnect_attachment_path) - parse_interconnect_attachment_path = staticmethod(HubServiceClient.parse_interconnect_attachment_path) - spoke_path = staticmethod(HubServiceClient.spoke_path) - parse_spoke_path = staticmethod(HubServiceClient.parse_spoke_path) - vpn_tunnel_path = staticmethod(HubServiceClient.vpn_tunnel_path) - parse_vpn_tunnel_path = staticmethod(HubServiceClient.parse_vpn_tunnel_path) - common_billing_account_path = staticmethod(HubServiceClient.common_billing_account_path) - parse_common_billing_account_path = staticmethod(HubServiceClient.parse_common_billing_account_path) - common_folder_path = staticmethod(HubServiceClient.common_folder_path) - parse_common_folder_path = staticmethod(HubServiceClient.parse_common_folder_path) - common_organization_path = staticmethod(HubServiceClient.common_organization_path) - parse_common_organization_path = staticmethod(HubServiceClient.parse_common_organization_path) - common_project_path = staticmethod(HubServiceClient.common_project_path) - parse_common_project_path = staticmethod(HubServiceClient.parse_common_project_path) - common_location_path = staticmethod(HubServiceClient.common_location_path) - parse_common_location_path = staticmethod(HubServiceClient.parse_common_location_path) - - @classmethod - def from_service_account_info(cls, info: dict, *args, **kwargs): - """Creates an instance of this client using the provided credentials - info. - - Args: - info (dict): The service account private key info. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - HubServiceAsyncClient: The constructed client. - """ - return HubServiceClient.from_service_account_info.__func__(HubServiceAsyncClient, info, *args, **kwargs) # type: ignore - - @classmethod - def from_service_account_file(cls, filename: str, *args, **kwargs): - """Creates an instance of this client using the provided credentials - file. - - Args: - filename (str): The path to the service account private key json - file. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - HubServiceAsyncClient: The constructed client. - """ - return HubServiceClient.from_service_account_file.__func__(HubServiceAsyncClient, filename, *args, **kwargs) # type: ignore - - from_service_account_json = from_service_account_file - - @classmethod - def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[ClientOptions] = None): - """Return the API endpoint and client cert source for mutual TLS. - - The client cert source is determined in the following order: - (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the - client cert source is None. - (2) if `client_options.client_cert_source` is provided, use the provided one; if the - default client cert source exists, use the default one; otherwise the client cert - source is None. - - The API endpoint is determined in the following order: - (1) if `client_options.api_endpoint` if provided, use the provided one. - (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the - default mTLS endpoint; if the environment variable is "never", use the default API - endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise - use the default API endpoint. - - More details can be found at https://google.aip.dev/auth/4114. - - Args: - client_options (google.api_core.client_options.ClientOptions): Custom options for the - client. Only the `api_endpoint` and `client_cert_source` properties may be used - in this method. - - Returns: - Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the - client cert source to use. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If any errors happen. - """ - return HubServiceClient.get_mtls_endpoint_and_cert_source(client_options) # type: ignore - - @property - def transport(self) -> HubServiceTransport: - """Returns the transport used by the client instance. - - Returns: - HubServiceTransport: The transport used by the client instance. - """ - return self._client.transport - - get_transport_class = functools.partial(type(HubServiceClient).get_transport_class, type(HubServiceClient)) - - def __init__(self, *, - credentials: Optional[ga_credentials.Credentials] = None, - transport: Union[str, HubServiceTransport] = "grpc_asyncio", - client_options: Optional[ClientOptions] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - ) -> None: - """Instantiates the hub service client. - - Args: - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - transport (Union[str, ~.HubServiceTransport]): The - transport to use. If set to None, a transport is chosen - automatically. - client_options (ClientOptions): Custom options for the client. It - won't take effect if a ``transport`` instance is provided. - (1) The ``api_endpoint`` property can be used to override the - default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT - environment variable can also be used to override the endpoint: - "always" (always use the default mTLS endpoint), "never" (always - use the default regular endpoint) and "auto" (auto switch to the - default mTLS endpoint if client certificate is present, this is - the default value). However, the ``api_endpoint`` property takes - precedence if provided. - (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable - is "true", then the ``client_cert_source`` property can be used - to provide client certificate for mutual TLS transport. If - not provided, the default SSL client certificate will be used if - present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not - set, no client certificate will be used. - - Raises: - google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport - creation failed for any reason. - """ - self._client = HubServiceClient( - credentials=credentials, - transport=transport, - client_options=client_options, - client_info=client_info, - - ) - - async def list_hubs(self, - request: Optional[Union[hub.ListHubsRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListHubsAsyncPager: - r"""Lists Hubs in a given project and location. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_list_hubs(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.ListHubsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_hubs(request=request) - - # Handle the response - async for response in page_result: - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest, dict]]): - The request object. Request for - [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] - method. - parent (:class:`str`): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListHubsAsyncPager: - Response for - [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] - method. - - 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([parent]) - 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.") - - request = hub.ListHubsRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.list_hubs, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # This method is paged; wrap the response in a pager, which provides - # an `__aiter__` convenience method. - response = pagers.ListHubsAsyncPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def get_hub(self, - request: Optional[Union[hub.GetHubRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Hub: - r"""Gets details of a single Hub. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_get_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.GetHubRequest( - name="name_value", - ) - - # Make the request - response = await client.get_hub(request=request) - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest, dict]]): - The request object. Request for - [HubService.GetHub][google.cloud.networkconnectivity.v1alpha1.HubService.GetHub] - method. - name (:class:`str`): - Required. Name of the Hub resource to - get. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1alpha1.types.Hub: - Network Connectivity Center is a - hub-and-spoke abstraction for network - connectivity management in Google Cloud. - It reduces operational complexity - through a simple, centralized - connectivity management model. Following - is the resource message of a hub. - - """ - # 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([name]) - 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.") - - request = hub.GetHubRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.get_hub, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def create_hub(self, - request: Optional[Union[gcn_hub.CreateHubRequest, dict]] = None, - *, - parent: Optional[str] = None, - hub: Optional[gcn_hub.Hub] = None, - hub_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Creates a new Hub in a given project and location. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_create_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.CreateHubRequest( - parent="parent_value", - ) - - # Make the request - operation = client.create_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest, dict]]): - The request object. Request for - [HubService.CreateHub][google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub] - method. - parent (:class:`str`): - Required. The parent resource's name - of the Hub. - - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - hub (:class:`google.cloud.networkconnectivity_v1alpha1.types.Hub`): - Required. Initial values for a new - Hub. - - This corresponds to the ``hub`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - hub_id (:class:`str`): - Optional. Unique id for the Hub to - create. - - This corresponds to the ``hub_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Hub` Network Connectivity Center is a hub-and-spoke abstraction for - network connectivity management in Google Cloud. It - reduces operational complexity through a simple, - centralized connectivity management model. Following - is the resource message of a hub. - - """ - # 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([parent, hub, hub_id]) - 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.") - - request = gcn_hub.CreateHubRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if hub is not None: - request.hub = hub - if hub_id is not None: - request.hub_id = hub_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.create_hub, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - gcn_hub.Hub, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def update_hub(self, - request: Optional[Union[gcn_hub.UpdateHubRequest, dict]] = None, - *, - hub: Optional[gcn_hub.Hub] = None, - update_mask: Optional[field_mask_pb2.FieldMask] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Updates the parameters of a single Hub. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_update_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.UpdateHubRequest( - ) - - # Make the request - operation = client.update_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest, dict]]): - The request object. Request for - [HubService.UpdateHub][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub] - method. - hub (:class:`google.cloud.networkconnectivity_v1alpha1.types.Hub`): - Required. The state that the Hub - should be in after the update. - - This corresponds to the ``hub`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`): - Optional. Field mask is used to specify the fields to be - overwritten in the Hub resource by the update. The - fields specified in the update_mask are relative to the - resource, not the full request. A field will be - overwritten if it is in the mask. If the user does not - provide a mask then all fields will be overwritten. - - This corresponds to the ``update_mask`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Hub` Network Connectivity Center is a hub-and-spoke abstraction for - network connectivity management in Google Cloud. It - reduces operational complexity through a simple, - centralized connectivity management model. Following - is the resource message of a hub. - - """ - # 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([hub, update_mask]) - 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.") - - request = gcn_hub.UpdateHubRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if hub is not None: - request.hub = hub - if update_mask is not None: - request.update_mask = update_mask - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.update_hub, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("hub.name", request.hub.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - gcn_hub.Hub, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def delete_hub(self, - request: Optional[Union[hub.DeleteHubRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Deletes a single Hub. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_delete_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.DeleteHubRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest, dict]]): - The request object. The request for - [HubService.DeleteHub][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub]. - name (:class:`str`): - Required. The name of the Hub to - delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.") - - request = hub.DeleteHubRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.delete_hub, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def list_spokes(self, - request: Optional[Union[hub.ListSpokesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListSpokesAsyncPager: - r"""Lists Spokes in a given project and location. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_list_spokes(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.ListSpokesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_spokes(request=request) - - # Handle the response - async for response in page_result: - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest, dict]]): - The request object. The request for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. - parent (:class:`str`): - Required. The parent's resource name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListSpokesAsyncPager: - The response for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. - - 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([parent]) - 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.") - - request = hub.ListSpokesRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.list_spokes, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # This method is paged; wrap the response in a pager, which provides - # an `__aiter__` convenience method. - response = pagers.ListSpokesAsyncPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def get_spoke(self, - request: Optional[Union[hub.GetSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Spoke: - r"""Gets details of a single Spoke. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_get_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.GetSpokeRequest( - name="name_value", - ) - - # Make the request - response = await client.get_spoke(request=request) - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest, dict]]): - The request object. The request for - [HubService.GetSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke]. - name (:class:`str`): - Required. The name of Spoke resource. - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1alpha1.types.Spoke: - A Spoke is an abstraction of a - network attachment being attached to a - Hub. A Spoke can be underlying a VPN - tunnel, a VLAN (interconnect) - attachment, a Router appliance, etc. - - """ - # 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([name]) - 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.") - - request = hub.GetSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.get_spoke, - default_timeout=None, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - async def create_spoke(self, - request: Optional[Union[hub.CreateSpokeRequest, dict]] = None, - *, - parent: Optional[str] = None, - spoke: Optional[hub.Spoke] = None, - spoke_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Creates a new Spoke in a given project and location. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_create_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.CreateSpokeRequest( - parent="parent_value", - ) - - # Make the request - operation = client.create_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest, dict]]): - The request object. The request for - [HubService.CreateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke]. - parent (:class:`str`): - Required. The parent's resource name - of the Spoke. - - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke (:class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke`): - Required. Initial values for a new - Hub. - - This corresponds to the ``spoke`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke_id (:class:`str`): - Optional. Unique id for the Spoke to - create. - - This corresponds to the ``spoke_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke` A Spoke is an abstraction of a network attachment being attached - to a Hub. A Spoke can be underlying a VPN tunnel, a - VLAN (interconnect) attachment, a Router appliance, - etc. - - """ - # 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([parent, spoke, spoke_id]) - 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.") - - request = hub.CreateSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if spoke is not None: - request.spoke = spoke - if spoke_id is not None: - request.spoke_id = spoke_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.create_spoke, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - hub.Spoke, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def update_spoke(self, - request: Optional[Union[hub.UpdateSpokeRequest, dict]] = None, - *, - spoke: Optional[hub.Spoke] = None, - update_mask: Optional[field_mask_pb2.FieldMask] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Updates the parameters of a single Spoke. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_update_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.UpdateSpokeRequest( - ) - - # Make the request - operation = client.update_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest, dict]]): - The request object. Request for - [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke] - method. - spoke (:class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke`): - Required. The state that the Spoke - should be in after the update. - - This corresponds to the ``spoke`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - update_mask (:class:`google.protobuf.field_mask_pb2.FieldMask`): - Optional. Field mask is used to specify the fields to be - overwritten in the Spoke resource by the update. The - fields specified in the update_mask are relative to the - resource, not the full request. A field will be - overwritten if it is in the mask. If the user does not - provide a mask then all fields will be overwritten. - - This corresponds to the ``update_mask`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke` A Spoke is an abstraction of a network attachment being attached - to a Hub. A Spoke can be underlying a VPN tunnel, a - VLAN (interconnect) attachment, a Router appliance, - etc. - - """ - # 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([spoke, update_mask]) - 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.") - - request = hub.UpdateSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if spoke is not None: - request.spoke = spoke - if update_mask is not None: - request.update_mask = update_mask - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.update_spoke, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("spoke.name", request.spoke.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - hub.Spoke, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def delete_spoke(self, - request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation_async.AsyncOperation: - r"""Deletes a single Spoke. - - .. 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 networkconnectivity_v1alpha1 - - async def sample_delete_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.DeleteSpokeRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - - Args: - request (Optional[Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest, dict]]): - The request object. The request for - [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke]. - name (:class:`str`): - Required. The name of the Spoke to - delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation_async.AsyncOperation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.") - - request = hub.DeleteSpokeRequest(request) - - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = gapic_v1.method_async.wrap_method( - self._client._transport.delete_spoke, - default_timeout=60.0, - client_info=DEFAULT_CLIENT_INFO, - ) - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = await rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation_async.from_gapic( - response, - self._client._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - async def __aenter__(self) -> "HubServiceAsyncClient": - return self - - async def __aexit__(self, exc_type, exc, tb): - await self.transport.close() - -DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) - - -__all__ = ( - "HubServiceAsyncClient", -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py deleted file mode 100644 index ec81030e84d2..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/client.py +++ /dev/null @@ -1,1675 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from collections import OrderedDict -import os -import re -from typing import Dict, Mapping, MutableMapping, MutableSequence, Optional, Sequence, Tuple, Type, Union, cast - -from google.cloud.networkconnectivity_v1alpha1 import gapic_version as package_version - -from google.api_core import client_options as client_options_lib -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import retry as retries -from google.auth import credentials as ga_credentials # type: ignore -from google.auth.transport import mtls # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore -from google.auth.exceptions import MutualTLSChannelError # type: ignore -from google.oauth2 import service_account # type: ignore - -try: - OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] -except AttributeError: # pragma: NO COVER - OptionalRetry = Union[retries.Retry, object] # type: ignore - -from google.api_core import operation # type: ignore -from google.api_core import operation_async # type: ignore -from google.cloud.networkconnectivity_v1alpha1.services.hub_service import pagers -from google.cloud.networkconnectivity_v1alpha1.types import common -from google.cloud.networkconnectivity_v1alpha1.types import hub -from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub -from google.protobuf import empty_pb2 # type: ignore -from google.protobuf import field_mask_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore -from .transports.base import HubServiceTransport, DEFAULT_CLIENT_INFO -from .transports.grpc import HubServiceGrpcTransport -from .transports.grpc_asyncio import HubServiceGrpcAsyncIOTransport - - -class HubServiceClientMeta(type): - """Metaclass for the HubService client. - - This provides class-level methods for building and retrieving - support objects (e.g. transport) without polluting the client instance - objects. - """ - _transport_registry = OrderedDict() # type: Dict[str, Type[HubServiceTransport]] - _transport_registry["grpc"] = HubServiceGrpcTransport - _transport_registry["grpc_asyncio"] = HubServiceGrpcAsyncIOTransport - - def get_transport_class(cls, - label: Optional[str] = None, - ) -> Type[HubServiceTransport]: - """Returns an appropriate transport class. - - Args: - label: The name of the desired transport. If none is - provided, then the first transport in the registry is used. - - Returns: - The transport class to use. - """ - # If a specific transport is requested, return that one. - if label: - return cls._transport_registry[label] - - # No transport is requested; return the default (that is, the first one - # in the dictionary). - return next(iter(cls._transport_registry.values())) - - -class HubServiceClient(metaclass=HubServiceClientMeta): - """Network Connectivity Center is a hub-and-spoke abstraction - for network connectivity management in Google Cloud. It reduces - operational complexity through a simple, centralized - connectivity management model. - """ - - @staticmethod - def _get_default_mtls_endpoint(api_endpoint): - """Converts api endpoint to mTLS endpoint. - - Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to - "*.mtls.sandbox.googleapis.com" and "*.mtls.googleapis.com" respectively. - Args: - api_endpoint (Optional[str]): the api endpoint to convert. - Returns: - str: converted mTLS api endpoint. - """ - if not api_endpoint: - return api_endpoint - - mtls_endpoint_re = re.compile( - r"(?P[^.]+)(?P\.mtls)?(?P\.sandbox)?(?P\.googleapis\.com)?" - ) - - m = mtls_endpoint_re.match(api_endpoint) - name, mtls, sandbox, googledomain = m.groups() - if mtls or not googledomain: - return api_endpoint - - if sandbox: - return api_endpoint.replace( - "sandbox.googleapis.com", "mtls.sandbox.googleapis.com" - ) - - return api_endpoint.replace(".googleapis.com", ".mtls.googleapis.com") - - DEFAULT_ENDPOINT = "networkconnectivity.googleapis.com" - DEFAULT_MTLS_ENDPOINT = _get_default_mtls_endpoint.__func__( # type: ignore - DEFAULT_ENDPOINT - ) - - @classmethod - def from_service_account_info(cls, info: dict, *args, **kwargs): - """Creates an instance of this client using the provided credentials - info. - - Args: - info (dict): The service account private key info. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - HubServiceClient: The constructed client. - """ - credentials = service_account.Credentials.from_service_account_info(info) - kwargs["credentials"] = credentials - return cls(*args, **kwargs) - - @classmethod - def from_service_account_file(cls, filename: str, *args, **kwargs): - """Creates an instance of this client using the provided credentials - file. - - Args: - filename (str): The path to the service account private key json - file. - args: Additional arguments to pass to the constructor. - kwargs: Additional arguments to pass to the constructor. - - Returns: - HubServiceClient: The constructed client. - """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs["credentials"] = credentials - return cls(*args, **kwargs) - - from_service_account_json = from_service_account_file - - @property - def transport(self) -> HubServiceTransport: - """Returns the transport used by the client instance. - - Returns: - HubServiceTransport: The transport used by the client - instance. - """ - return self._transport - - @staticmethod - def hub_path(project: str,hub: str,) -> str: - """Returns a fully-qualified hub string.""" - return "projects/{project}/locations/global/hubs/{hub}".format(project=project, hub=hub, ) - - @staticmethod - def parse_hub_path(path: str) -> Dict[str,str]: - """Parses a hub path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def instance_path(project: str,zone: str,instance: str,) -> str: - """Returns a fully-qualified instance string.""" - return "projects/{project}/zones/{zone}/instances/{instance}".format(project=project, zone=zone, instance=instance, ) - - @staticmethod - def parse_instance_path(path: str) -> Dict[str,str]: - """Parses a instance path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/zones/(?P.+?)/instances/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def interconnect_attachment_path(project: str,region: str,resource_id: str,) -> str: - """Returns a fully-qualified interconnect_attachment string.""" - return "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) - - @staticmethod - def parse_interconnect_attachment_path(path: str) -> Dict[str,str]: - """Parses a interconnect_attachment path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/regions/(?P.+?)/interconnectAttachments/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def spoke_path(project: str,location: str,spoke: str,) -> str: - """Returns a fully-qualified spoke string.""" - return "projects/{project}/locations/{location}/spokes/{spoke}".format(project=project, location=location, spoke=spoke, ) - - @staticmethod - def parse_spoke_path(path: str) -> Dict[str,str]: - """Parses a spoke path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)/spokes/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def vpn_tunnel_path(project: str,region: str,resource_id: str,) -> str: - """Returns a fully-qualified vpn_tunnel string.""" - return "projects/{project}/regions/{region}/vpnTunnels/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) - - @staticmethod - def parse_vpn_tunnel_path(path: str) -> Dict[str,str]: - """Parses a vpn_tunnel path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/regions/(?P.+?)/vpnTunnels/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_billing_account_path(billing_account: str, ) -> str: - """Returns a fully-qualified billing_account string.""" - return "billingAccounts/{billing_account}".format(billing_account=billing_account, ) - - @staticmethod - def parse_common_billing_account_path(path: str) -> Dict[str,str]: - """Parse a billing_account path into its component segments.""" - m = re.match(r"^billingAccounts/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_folder_path(folder: str, ) -> str: - """Returns a fully-qualified folder string.""" - return "folders/{folder}".format(folder=folder, ) - - @staticmethod - def parse_common_folder_path(path: str) -> Dict[str,str]: - """Parse a folder path into its component segments.""" - m = re.match(r"^folders/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_organization_path(organization: str, ) -> str: - """Returns a fully-qualified organization string.""" - return "organizations/{organization}".format(organization=organization, ) - - @staticmethod - def parse_common_organization_path(path: str) -> Dict[str,str]: - """Parse a organization path into its component segments.""" - m = re.match(r"^organizations/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_project_path(project: str, ) -> str: - """Returns a fully-qualified project string.""" - return "projects/{project}".format(project=project, ) - - @staticmethod - def parse_common_project_path(path: str) -> Dict[str,str]: - """Parse a project path into its component segments.""" - m = re.match(r"^projects/(?P.+?)$", path) - return m.groupdict() if m else {} - - @staticmethod - def common_location_path(project: str, location: str, ) -> str: - """Returns a fully-qualified location string.""" - return "projects/{project}/locations/{location}".format(project=project, location=location, ) - - @staticmethod - def parse_common_location_path(path: str) -> Dict[str,str]: - """Parse a location path into its component segments.""" - m = re.match(r"^projects/(?P.+?)/locations/(?P.+?)$", path) - return m.groupdict() if m else {} - - @classmethod - def get_mtls_endpoint_and_cert_source(cls, client_options: Optional[client_options_lib.ClientOptions] = None): - """Return the API endpoint and client cert source for mutual TLS. - - The client cert source is determined in the following order: - (1) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is not "true", the - client cert source is None. - (2) if `client_options.client_cert_source` is provided, use the provided one; if the - default client cert source exists, use the default one; otherwise the client cert - source is None. - - The API endpoint is determined in the following order: - (1) if `client_options.api_endpoint` if provided, use the provided one. - (2) if `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is "always", use the - default mTLS endpoint; if the environment variable is "never", use the default API - endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise - use the default API endpoint. - - More details can be found at https://google.aip.dev/auth/4114. - - Args: - client_options (google.api_core.client_options.ClientOptions): Custom options for the - client. Only the `api_endpoint` and `client_cert_source` properties may be used - in this method. - - Returns: - Tuple[str, Callable[[], Tuple[bytes, bytes]]]: returns the API endpoint and the - client cert source to use. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If any errors happen. - """ - if client_options is None: - client_options = client_options_lib.ClientOptions() - use_client_cert = os.getenv("GOOGLE_API_USE_CLIENT_CERTIFICATE", "false") - use_mtls_endpoint = os.getenv("GOOGLE_API_USE_MTLS_ENDPOINT", "auto") - if use_client_cert not in ("true", "false"): - raise ValueError("Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`") - if use_mtls_endpoint not in ("auto", "never", "always"): - raise MutualTLSChannelError("Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be `never`, `auto` or `always`") - - # Figure out the client cert source to use. - client_cert_source = None - if use_client_cert == "true": - if client_options.client_cert_source: - client_cert_source = client_options.client_cert_source - elif mtls.has_default_client_cert_source(): - client_cert_source = mtls.default_client_cert_source() - - # Figure out which api endpoint to use. - if client_options.api_endpoint is not None: - api_endpoint = client_options.api_endpoint - elif use_mtls_endpoint == "always" or (use_mtls_endpoint == "auto" and client_cert_source): - api_endpoint = cls.DEFAULT_MTLS_ENDPOINT - else: - api_endpoint = cls.DEFAULT_ENDPOINT - - return api_endpoint, client_cert_source - - def __init__(self, *, - credentials: Optional[ga_credentials.Credentials] = None, - transport: Optional[Union[str, HubServiceTransport]] = None, - client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - ) -> None: - """Instantiates the hub service client. - - Args: - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - transport (Union[str, HubServiceTransport]): The - transport to use. If set to None, a transport is chosen - automatically. - client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the - client. It won't take effect if a ``transport`` instance is provided. - (1) The ``api_endpoint`` property can be used to override the - default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT - environment variable can also be used to override the endpoint: - "always" (always use the default mTLS endpoint), "never" (always - use the default regular endpoint) and "auto" (auto switch to the - default mTLS endpoint if client certificate is present, this is - the default value). However, the ``api_endpoint`` property takes - precedence if provided. - (2) If GOOGLE_API_USE_CLIENT_CERTIFICATE environment variable - is "true", then the ``client_cert_source`` property can be used - to provide client certificate for mutual TLS transport. If - not provided, the default SSL client certificate will be used if - present. If GOOGLE_API_USE_CLIENT_CERTIFICATE is "false" or not - set, no client certificate will be used. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport - creation failed for any reason. - """ - if isinstance(client_options, dict): - client_options = client_options_lib.from_dict(client_options) - if client_options is None: - client_options = client_options_lib.ClientOptions() - client_options = cast(client_options_lib.ClientOptions, client_options) - - api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source(client_options) - - api_key_value = getattr(client_options, "api_key", None) - if api_key_value and credentials: - raise ValueError("client_options.api_key and credentials are mutually exclusive") - - # Save or instantiate the transport. - # Ordinarily, we provide the transport, but allowing a custom transport - # instance provides an extensibility point for unusual situations. - if isinstance(transport, HubServiceTransport): - # transport is a HubServiceTransport instance. - if credentials or client_options.credentials_file or api_key_value: - raise ValueError("When providing a transport instance, " - "provide its credentials directly.") - if client_options.scopes: - raise ValueError( - "When providing a transport instance, provide its scopes " - "directly." - ) - self._transport = transport - else: - import google.auth._default # type: ignore - - if api_key_value and hasattr(google.auth._default, "get_api_key_credentials"): - credentials = google.auth._default.get_api_key_credentials(api_key_value) - - Transport = type(self).get_transport_class(transport) - self._transport = Transport( - credentials=credentials, - credentials_file=client_options.credentials_file, - host=api_endpoint, - scopes=client_options.scopes, - client_cert_source_for_mtls=client_cert_source_func, - quota_project_id=client_options.quota_project_id, - client_info=client_info, - always_use_jwt_access=True, - api_audience=client_options.api_audience, - ) - - def list_hubs(self, - request: Optional[Union[hub.ListHubsRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListHubsPager: - r"""Lists Hubs in a given project and location. - - .. 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 networkconnectivity_v1alpha1 - - def sample_list_hubs(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.ListHubsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_hubs(request=request) - - # Handle the response - for response in page_result: - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest, dict]): - The request object. Request for - [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] - method. - parent (str): - Required. The parent resource's name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListHubsPager: - Response for - [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] - method. - - 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([parent]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.ListHubsRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.ListHubsRequest): - request = hub.ListHubsRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list_hubs] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # 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.ListHubsPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - def get_hub(self, - request: Optional[Union[hub.GetHubRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Hub: - r"""Gets details of a single Hub. - - .. 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 networkconnectivity_v1alpha1 - - def sample_get_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.GetHubRequest( - name="name_value", - ) - - # Make the request - response = client.get_hub(request=request) - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest, dict]): - The request object. Request for - [HubService.GetHub][google.cloud.networkconnectivity.v1alpha1.HubService.GetHub] - method. - name (str): - Required. Name of the Hub resource to - get. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1alpha1.types.Hub: - Network Connectivity Center is a - hub-and-spoke abstraction for network - connectivity management in Google Cloud. - It reduces operational complexity - through a simple, centralized - connectivity management model. Following - is the resource message of a hub. - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.GetHubRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.GetHubRequest): - request = hub.GetHubRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_hub] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - def create_hub(self, - request: Optional[Union[gcn_hub.CreateHubRequest, dict]] = None, - *, - parent: Optional[str] = None, - hub: Optional[gcn_hub.Hub] = None, - hub_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Creates a new Hub in a given project and location. - - .. 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 networkconnectivity_v1alpha1 - - def sample_create_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.CreateHubRequest( - parent="parent_value", - ) - - # Make the request - operation = client.create_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest, dict]): - The request object. Request for - [HubService.CreateHub][google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub] - method. - parent (str): - Required. The parent resource's name - of the Hub. - - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - hub (google.cloud.networkconnectivity_v1alpha1.types.Hub): - Required. Initial values for a new - Hub. - - This corresponds to the ``hub`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - hub_id (str): - Optional. Unique id for the Hub to - create. - - This corresponds to the ``hub_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Hub` Network Connectivity Center is a hub-and-spoke abstraction for - network connectivity management in Google Cloud. It - reduces operational complexity through a simple, - centralized connectivity management model. Following - is the resource message of a hub. - - """ - # 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([parent, hub, hub_id]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a gcn_hub.CreateHubRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, gcn_hub.CreateHubRequest): - request = gcn_hub.CreateHubRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if hub is not None: - request.hub = hub - if hub_id is not None: - request.hub_id = hub_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.create_hub] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - gcn_hub.Hub, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def update_hub(self, - request: Optional[Union[gcn_hub.UpdateHubRequest, dict]] = None, - *, - hub: Optional[gcn_hub.Hub] = None, - update_mask: Optional[field_mask_pb2.FieldMask] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Updates the parameters of a single Hub. - - .. 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 networkconnectivity_v1alpha1 - - def sample_update_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.UpdateHubRequest( - ) - - # Make the request - operation = client.update_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest, dict]): - The request object. Request for - [HubService.UpdateHub][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub] - method. - hub (google.cloud.networkconnectivity_v1alpha1.types.Hub): - Required. The state that the Hub - should be in after the update. - - This corresponds to the ``hub`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - update_mask (google.protobuf.field_mask_pb2.FieldMask): - Optional. Field mask is used to specify the fields to be - overwritten in the Hub resource by the update. The - fields specified in the update_mask are relative to the - resource, not the full request. A field will be - overwritten if it is in the mask. If the user does not - provide a mask then all fields will be overwritten. - - This corresponds to the ``update_mask`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Hub` Network Connectivity Center is a hub-and-spoke abstraction for - network connectivity management in Google Cloud. It - reduces operational complexity through a simple, - centralized connectivity management model. Following - is the resource message of a hub. - - """ - # 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([hub, update_mask]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a gcn_hub.UpdateHubRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, gcn_hub.UpdateHubRequest): - request = gcn_hub.UpdateHubRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if hub is not None: - request.hub = hub - if update_mask is not None: - request.update_mask = update_mask - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.update_hub] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("hub.name", request.hub.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - gcn_hub.Hub, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def delete_hub(self, - request: Optional[Union[hub.DeleteHubRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Deletes a single Hub. - - .. 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 networkconnectivity_v1alpha1 - - def sample_delete_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.DeleteHubRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest, dict]): - The request object. The request for - [HubService.DeleteHub][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub]. - name (str): - Required. The name of the Hub to - delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.DeleteHubRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.DeleteHubRequest): - request = hub.DeleteHubRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.delete_hub] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def list_spokes(self, - request: Optional[Union[hub.ListSpokesRequest, dict]] = None, - *, - parent: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> pagers.ListSpokesPager: - r"""Lists Spokes in a given project and location. - - .. 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 networkconnectivity_v1alpha1 - - def sample_list_spokes(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.ListSpokesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_spokes(request=request) - - # Handle the response - for response in page_result: - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest, dict]): - The request object. The request for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. - parent (str): - Required. The parent's resource name. - This corresponds to the ``parent`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListSpokesPager: - The response for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. - - 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([parent]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.ListSpokesRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.ListSpokesRequest): - request = hub.ListSpokesRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.list_spokes] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # 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.ListSpokesPager( - method=rpc, - request=request, - response=response, - metadata=metadata, - ) - - # Done; return the response. - return response - - def get_spoke(self, - request: Optional[Union[hub.GetSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> hub.Spoke: - r"""Gets details of a single Spoke. - - .. 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 networkconnectivity_v1alpha1 - - def sample_get_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.GetSpokeRequest( - name="name_value", - ) - - # Make the request - response = client.get_spoke(request=request) - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest, dict]): - The request object. The request for - [HubService.GetSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke]. - name (str): - Required. The name of Spoke resource. - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.cloud.networkconnectivity_v1alpha1.types.Spoke: - A Spoke is an abstraction of a - network attachment being attached to a - Hub. A Spoke can be underlying a VPN - tunnel, a VLAN (interconnect) - attachment, a Router appliance, etc. - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.GetSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.GetSpokeRequest): - request = hub.GetSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.get_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Done; return the response. - return response - - def create_spoke(self, - request: Optional[Union[hub.CreateSpokeRequest, dict]] = None, - *, - parent: Optional[str] = None, - spoke: Optional[hub.Spoke] = None, - spoke_id: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Creates a new Spoke in a given project and location. - - .. 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 networkconnectivity_v1alpha1 - - def sample_create_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.CreateSpokeRequest( - parent="parent_value", - ) - - # Make the request - operation = client.create_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest, dict]): - The request object. The request for - [HubService.CreateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke]. - parent (str): - Required. The parent's resource name - of the Spoke. - - This corresponds to the ``parent`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke (google.cloud.networkconnectivity_v1alpha1.types.Spoke): - Required. Initial values for a new - Hub. - - This corresponds to the ``spoke`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - spoke_id (str): - Optional. Unique id for the Spoke to - create. - - This corresponds to the ``spoke_id`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke` A Spoke is an abstraction of a network attachment being attached - to a Hub. A Spoke can be underlying a VPN tunnel, a - VLAN (interconnect) attachment, a Router appliance, - etc. - - """ - # 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([parent, spoke, spoke_id]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.CreateSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.CreateSpokeRequest): - request = hub.CreateSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if parent is not None: - request.parent = parent - if spoke is not None: - request.spoke = spoke - if spoke_id is not None: - request.spoke_id = spoke_id - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.create_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("parent", request.parent), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - hub.Spoke, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def update_spoke(self, - request: Optional[Union[hub.UpdateSpokeRequest, dict]] = None, - *, - spoke: Optional[hub.Spoke] = None, - update_mask: Optional[field_mask_pb2.FieldMask] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Updates the parameters of a single Spoke. - - .. 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 networkconnectivity_v1alpha1 - - def sample_update_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.UpdateSpokeRequest( - ) - - # Make the request - operation = client.update_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest, dict]): - The request object. Request for - [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke] - method. - spoke (google.cloud.networkconnectivity_v1alpha1.types.Spoke): - Required. The state that the Spoke - should be in after the update. - - This corresponds to the ``spoke`` field - on the ``request`` instance; if ``request`` is provided, this - should not be set. - update_mask (google.protobuf.field_mask_pb2.FieldMask): - Optional. Field mask is used to specify the fields to be - overwritten in the Spoke resource by the update. The - fields specified in the update_mask are relative to the - resource, not the full request. A field will be - overwritten if it is in the mask. If the user does not - provide a mask then all fields will be overwritten. - - This corresponds to the ``update_mask`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1alpha1.types.Spoke` A Spoke is an abstraction of a network attachment being attached - to a Hub. A Spoke can be underlying a VPN tunnel, a - VLAN (interconnect) attachment, a Router appliance, - etc. - - """ - # 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([spoke, update_mask]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.UpdateSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.UpdateSpokeRequest): - request = hub.UpdateSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if spoke is not None: - request.spoke = spoke - if update_mask is not None: - request.update_mask = update_mask - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.update_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("spoke.name", request.spoke.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - hub.Spoke, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def delete_spoke(self, - request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, - *, - name: Optional[str] = None, - retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Union[float, object] = gapic_v1.method.DEFAULT, - metadata: Sequence[Tuple[str, str]] = (), - ) -> operation.Operation: - r"""Deletes a single Spoke. - - .. 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 networkconnectivity_v1alpha1 - - def sample_delete_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.DeleteSpokeRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - - Args: - request (Union[google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest, dict]): - The request object. The request for - [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke]. - name (str): - Required. The name of the Spoke to - delete. - - This corresponds to the ``name`` 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, str]]): Strings which should be - sent along with the request as metadata. - - Returns: - google.api_core.operation.Operation: - An object representing a long-running operation. - - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } - - """ - # 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([name]) - 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.') - - # Minor optimization to avoid making a copy if the user passes - # in a hub.DeleteSpokeRequest. - # There's no risk of modifying the input as we've already verified - # there are no flattened fields. - if not isinstance(request, hub.DeleteSpokeRequest): - request = hub.DeleteSpokeRequest(request) - # If we have keyword arguments corresponding to fields on the - # request, apply these. - if name is not None: - request.name = name - - # Wrap the RPC method; this adds retry and timeout information, - # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.delete_spoke] - - # Certain fields should be provided within the metadata header; - # add these here. - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ("name", request.name), - )), - ) - - # Send the request. - response = rpc( - request, - retry=retry, - timeout=timeout, - metadata=metadata, - ) - - # Wrap the response in an operation future. - response = operation.from_gapic( - response, - self._transport.operations_client, - empty_pb2.Empty, - metadata_type=common.OperationMetadata, - ) - - # Done; return the response. - return response - - def __enter__(self) -> "HubServiceClient": - return self - - def __exit__(self, type, value, traceback): - """Releases underlying transport's resources. - - .. warning:: - ONLY use as a context manager if the transport is NOT shared - with other clients! Exiting the with block will CLOSE the transport - and may cause errors in other clients! - """ - self.transport.close() - - - - - - - -DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) - - -__all__ = ( - "HubServiceClient", -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/pagers.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/pagers.py deleted file mode 100644 index 942be58d08c5..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/pagers.py +++ /dev/null @@ -1,260 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from typing import Any, AsyncIterator, Awaitable, Callable, Sequence, Tuple, Optional, Iterator - -from google.cloud.networkconnectivity_v1alpha1.types import hub - - -class ListHubsPager: - """A pager for iterating through ``list_hubs`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse` object, and - provides an ``__iter__`` method to iterate through its - ``hubs`` field. - - If there are more pages, the ``__iter__`` method will make additional - ``ListHubs`` requests and continue to iterate - through the ``hubs`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse` - 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[..., hub.ListHubsResponse], - request: hub.ListHubsRequest, - response: hub.ListHubsResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiate the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListHubsRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - def pages(self) -> Iterator[hub.ListHubsResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = self._method(self._request, metadata=self._metadata) - yield self._response - - def __iter__(self) -> Iterator[hub.Hub]: - for page in self.pages: - yield from page.hubs - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListHubsAsyncPager: - """A pager for iterating through ``list_hubs`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse` object, and - provides an ``__aiter__`` method to iterate through its - ``hubs`` field. - - If there are more pages, the ``__aiter__`` method will make additional - ``ListHubs`` requests and continue to iterate - through the ``hubs`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse` - 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[..., Awaitable[hub.ListHubsResponse]], - request: hub.ListHubsRequest, - response: hub.ListHubsResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiates the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1alpha1.types.ListHubsResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListHubsRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - async def pages(self) -> AsyncIterator[hub.ListHubsResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = await self._method(self._request, metadata=self._metadata) - yield self._response - def __aiter__(self) -> AsyncIterator[hub.Hub]: - async def async_generator(): - async for page in self.pages: - for response in page.hubs: - yield response - - return async_generator() - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListSpokesPager: - """A pager for iterating through ``list_spokes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse` object, and - provides an ``__iter__`` method to iterate through its - ``spokes`` field. - - If there are more pages, the ``__iter__`` method will make additional - ``ListSpokes`` requests and continue to iterate - through the ``spokes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse` - 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[..., hub.ListSpokesResponse], - request: hub.ListSpokesRequest, - response: hub.ListSpokesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiate the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListSpokesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - def pages(self) -> Iterator[hub.ListSpokesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = self._method(self._request, metadata=self._metadata) - yield self._response - - def __iter__(self) -> Iterator[hub.Spoke]: - for page in self.pages: - yield from page.spokes - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) - - -class ListSpokesAsyncPager: - """A pager for iterating through ``list_spokes`` requests. - - This class thinly wraps an initial - :class:`google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse` object, and - provides an ``__aiter__`` method to iterate through its - ``spokes`` field. - - If there are more pages, the ``__aiter__`` method will make additional - ``ListSpokes`` requests and continue to iterate - through the ``spokes`` field on the - corresponding responses. - - All the usual :class:`google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse` - 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[..., Awaitable[hub.ListSpokesResponse]], - request: hub.ListSpokesRequest, - response: hub.ListSpokesResponse, - *, - metadata: Sequence[Tuple[str, str]] = ()): - """Instantiates the pager. - - Args: - method (Callable): The method that was originally called, and - which instantiated this pager. - request (google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest): - The initial request object. - response (google.cloud.networkconnectivity_v1alpha1.types.ListSpokesResponse): - The initial response object. - metadata (Sequence[Tuple[str, str]]): Strings which should be - sent along with the request as metadata. - """ - self._method = method - self._request = hub.ListSpokesRequest(request) - self._response = response - self._metadata = metadata - - def __getattr__(self, name: str) -> Any: - return getattr(self._response, name) - - @property - async def pages(self) -> AsyncIterator[hub.ListSpokesResponse]: - yield self._response - while self._response.next_page_token: - self._request.page_token = self._response.next_page_token - self._response = await self._method(self._request, metadata=self._metadata) - yield self._response - def __aiter__(self) -> AsyncIterator[hub.Spoke]: - async def async_generator(): - async for page in self.pages: - for response in page.spokes: - yield response - - return async_generator() - - def __repr__(self) -> str: - return '{0}<{1!r}>'.format(self.__class__.__name__, self._response) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/__init__.py deleted file mode 100644 index 029a0f72b9dd..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from collections import OrderedDict -from typing import Dict, Type - -from .base import HubServiceTransport -from .grpc import HubServiceGrpcTransport -from .grpc_asyncio import HubServiceGrpcAsyncIOTransport - - -# Compile a registry of transports. -_transport_registry = OrderedDict() # type: Dict[str, Type[HubServiceTransport]] -_transport_registry['grpc'] = HubServiceGrpcTransport -_transport_registry['grpc_asyncio'] = HubServiceGrpcAsyncIOTransport - -__all__ = ( - 'HubServiceTransport', - 'HubServiceGrpcTransport', - 'HubServiceGrpcAsyncIOTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py deleted file mode 100644 index 2b10ec21611e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/base.py +++ /dev/null @@ -1,282 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import abc -from typing import Awaitable, Callable, Dict, Optional, Sequence, Union - -from google.cloud.networkconnectivity_v1alpha1 import gapic_version as package_version - -import google.auth # type: ignore -import google.api_core -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import retry as retries -from google.api_core import operations_v1 -from google.auth import credentials as ga_credentials # type: ignore -from google.oauth2 import service_account # type: ignore - -from google.cloud.networkconnectivity_v1alpha1.types import hub -from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub -from google.longrunning import operations_pb2 # type: ignore - -DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(gapic_version=package_version.__version__) - - -class HubServiceTransport(abc.ABC): - """Abstract transport class for HubService.""" - - AUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - ) - - DEFAULT_HOST: str = 'networkconnectivity.googleapis.com' - def __init__( - self, *, - host: str = DEFAULT_HOST, - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - quota_project_id: Optional[str] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - always_use_jwt_access: Optional[bool] = False, - api_audience: Optional[str] = None, - **kwargs, - ) -> None: - """Instantiate the transport. - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is mutually exclusive with credentials. - scopes (Optional[Sequence[str]]): A list of scopes. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - """ - - scopes_kwargs = {"scopes": scopes, "default_scopes": self.AUTH_SCOPES} - - # Save the scopes. - self._scopes = scopes - - # If no credentials are provided, then determine the appropriate - # defaults. - if credentials and credentials_file: - raise core_exceptions.DuplicateCredentialArgs("'credentials_file' and 'credentials' are mutually exclusive") - - if credentials_file is not None: - credentials, _ = google.auth.load_credentials_from_file( - credentials_file, - **scopes_kwargs, - quota_project_id=quota_project_id - ) - elif credentials is None: - credentials, _ = google.auth.default(**scopes_kwargs, quota_project_id=quota_project_id) - # Don't apply audience if the credentials file passed from user. - if hasattr(credentials, "with_gdch_audience"): - credentials = credentials.with_gdch_audience(api_audience if api_audience else host) - - # If the credentials are service account credentials, then always try to use self signed JWT. - if always_use_jwt_access and isinstance(credentials, service_account.Credentials) and hasattr(service_account.Credentials, "with_always_use_jwt_access"): - credentials = credentials.with_always_use_jwt_access(True) - - # Save the credentials. - self._credentials = credentials - - # Save the hostname. Default to port 443 (HTTPS) if none is specified. - if ':' not in host: - host += ':443' - self._host = host - - def _prep_wrapped_messages(self, client_info): - # Precompute the wrapped methods. - self._wrapped_methods = { - self.list_hubs: gapic_v1.method.wrap_method( - self.list_hubs, - default_timeout=None, - client_info=client_info, - ), - self.get_hub: gapic_v1.method.wrap_method( - self.get_hub, - default_timeout=None, - client_info=client_info, - ), - self.create_hub: gapic_v1.method.wrap_method( - self.create_hub, - default_timeout=60.0, - client_info=client_info, - ), - self.update_hub: gapic_v1.method.wrap_method( - self.update_hub, - default_timeout=60.0, - client_info=client_info, - ), - self.delete_hub: gapic_v1.method.wrap_method( - self.delete_hub, - default_timeout=60.0, - client_info=client_info, - ), - self.list_spokes: gapic_v1.method.wrap_method( - self.list_spokes, - default_timeout=None, - client_info=client_info, - ), - self.get_spoke: gapic_v1.method.wrap_method( - self.get_spoke, - default_timeout=None, - client_info=client_info, - ), - self.create_spoke: gapic_v1.method.wrap_method( - self.create_spoke, - default_timeout=60.0, - client_info=client_info, - ), - self.update_spoke: gapic_v1.method.wrap_method( - self.update_spoke, - default_timeout=60.0, - client_info=client_info, - ), - self.delete_spoke: gapic_v1.method.wrap_method( - self.delete_spoke, - default_timeout=60.0, - client_info=client_info, - ), - } - - def close(self): - """Closes resources associated with the transport. - - .. warning:: - Only call this method if the transport is NOT shared - with other clients - this may cause errors in other clients! - """ - raise NotImplementedError() - - @property - def operations_client(self): - """Return the client designed to process long-running operations.""" - raise NotImplementedError() - - @property - def list_hubs(self) -> Callable[ - [hub.ListHubsRequest], - Union[ - hub.ListHubsResponse, - Awaitable[hub.ListHubsResponse] - ]]: - raise NotImplementedError() - - @property - def get_hub(self) -> Callable[ - [hub.GetHubRequest], - Union[ - hub.Hub, - Awaitable[hub.Hub] - ]]: - raise NotImplementedError() - - @property - def create_hub(self) -> Callable[ - [gcn_hub.CreateHubRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def update_hub(self) -> Callable[ - [gcn_hub.UpdateHubRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def delete_hub(self) -> Callable[ - [hub.DeleteHubRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def list_spokes(self) -> Callable[ - [hub.ListSpokesRequest], - Union[ - hub.ListSpokesResponse, - Awaitable[hub.ListSpokesResponse] - ]]: - raise NotImplementedError() - - @property - def get_spoke(self) -> Callable[ - [hub.GetSpokeRequest], - Union[ - hub.Spoke, - Awaitable[hub.Spoke] - ]]: - raise NotImplementedError() - - @property - def create_spoke(self) -> Callable[ - [hub.CreateSpokeRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def update_spoke(self) -> Callable[ - [hub.UpdateSpokeRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def delete_spoke(self) -> Callable[ - [hub.DeleteSpokeRequest], - Union[ - operations_pb2.Operation, - Awaitable[operations_pb2.Operation] - ]]: - raise NotImplementedError() - - @property - def kind(self) -> str: - raise NotImplementedError() - - -__all__ = ( - 'HubServiceTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py deleted file mode 100644 index 1006698bf17d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc.py +++ /dev/null @@ -1,521 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import warnings -from typing import Callable, Dict, Optional, Sequence, Tuple, Union - -from google.api_core import grpc_helpers -from google.api_core import operations_v1 -from google.api_core import gapic_v1 -import google.auth # type: ignore -from google.auth import credentials as ga_credentials # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore - -import grpc # type: ignore - -from google.cloud.networkconnectivity_v1alpha1.types import hub -from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub -from google.longrunning import operations_pb2 # type: ignore -from .base import HubServiceTransport, DEFAULT_CLIENT_INFO - - -class HubServiceGrpcTransport(HubServiceTransport): - """gRPC backend transport for HubService. - - Network Connectivity Center is a hub-and-spoke abstraction - for network connectivity management in Google Cloud. It reduces - operational complexity through a simple, centralized - connectivity management model. - - This class defines the same methods as the primary client, so the - primary client can load the underlying transport implementation - and call it. - - It sends protocol buffers over the wire using gRPC (which is built on - top of HTTP/2); the ``grpcio`` package must be installed. - """ - _stubs: Dict[str, Callable] - - def __init__(self, *, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - channel: Optional[grpc.Channel] = None, - api_mtls_endpoint: Optional[str] = None, - client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, - client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - quota_project_id: Optional[str] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - always_use_jwt_access: Optional[bool] = False, - api_audience: Optional[str] = None, - ) -> None: - """Instantiate the transport. - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - This argument is ignored if ``channel`` is provided. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional(Sequence[str])): A list of scopes. This argument is - ignored if ``channel`` is provided. - channel (Optional[grpc.Channel]): A ``Channel`` instance through - which to make calls. - api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. - If provided, it overrides the ``host`` argument and tries to create - a mutual TLS channel with client SSL credentials from - ``client_cert_source`` or application default SSL credentials. - client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): - Deprecated. A callback to provide client SSL certificate bytes and - private key bytes, both in PEM format. It is ignored if - ``api_mtls_endpoint`` is None. - ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials - for the grpc channel. It is ignored if ``channel`` is provided. - client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): - A callback to provide client certificate bytes and private key bytes, - both in PEM format. It is used to configure a mutual TLS channel. It is - ignored if ``channel`` or ``ssl_channel_credentials`` is provided. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - - Raises: - google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport - creation failed for any reason. - google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` - and ``credentials_file`` are passed. - """ - self._grpc_channel = None - self._ssl_channel_credentials = ssl_channel_credentials - self._stubs: Dict[str, Callable] = {} - self._operations_client: Optional[operations_v1.OperationsClient] = None - - if api_mtls_endpoint: - warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) - if client_cert_source: - warnings.warn("client_cert_source is deprecated", DeprecationWarning) - - if channel: - # Ignore credentials if a channel was passed. - credentials = False - # If a channel was explicitly provided, set it. - self._grpc_channel = channel - self._ssl_channel_credentials = None - - else: - if api_mtls_endpoint: - host = api_mtls_endpoint - - # Create SSL credentials with client_cert_source or application - # default SSL credentials. - if client_cert_source: - cert, key = client_cert_source() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - else: - self._ssl_channel_credentials = SslCredentials().ssl_credentials - - else: - if client_cert_source_for_mtls and not ssl_channel_credentials: - cert, key = client_cert_source_for_mtls() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - - # The base transport sets the host, credentials and scopes - super().__init__( - host=host, - credentials=credentials, - credentials_file=credentials_file, - scopes=scopes, - quota_project_id=quota_project_id, - client_info=client_info, - always_use_jwt_access=always_use_jwt_access, - api_audience=api_audience, - ) - - if not self._grpc_channel: - self._grpc_channel = type(self).create_channel( - self._host, - # use the credentials which are saved - credentials=self._credentials, - # Set ``credentials_file`` to ``None`` here as - # the credentials that we saved earlier should be used. - credentials_file=None, - scopes=self._scopes, - ssl_credentials=self._ssl_channel_credentials, - quota_project_id=quota_project_id, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - # Wrap messages. This must be done after self._grpc_channel exists - self._prep_wrapped_messages(client_info) - - @classmethod - def create_channel(cls, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - quota_project_id: Optional[str] = None, - **kwargs) -> grpc.Channel: - """Create and return a gRPC channel object. - Args: - host (Optional[str]): The host for the channel to use. - credentials (Optional[~.Credentials]): The - authorization credentials to attach to requests. These - credentials identify this application to the service. If - none are specified, the client will attempt to ascertain - the credentials from the environment. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is mutually exclusive with credentials. - scopes (Optional[Sequence[str]]): A optional list of scopes needed for this - service. These are only used when credentials are not specified and - are passed to :func:`google.auth.default`. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - kwargs (Optional[dict]): Keyword arguments, which are passed to the - channel creation. - Returns: - grpc.Channel: A gRPC channel object. - - Raises: - google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` - and ``credentials_file`` are passed. - """ - - return grpc_helpers.create_channel( - host, - credentials=credentials, - credentials_file=credentials_file, - quota_project_id=quota_project_id, - default_scopes=cls.AUTH_SCOPES, - scopes=scopes, - default_host=cls.DEFAULT_HOST, - **kwargs - ) - - @property - def grpc_channel(self) -> grpc.Channel: - """Return the channel designed to connect to this service. - """ - return self._grpc_channel - - @property - def operations_client(self) -> operations_v1.OperationsClient: - """Create the client designed to process long-running operations. - - This property caches on the instance; repeated calls return the same - client. - """ - # Quick check: Only create a new client if we do not already have one. - if self._operations_client is None: - self._operations_client = operations_v1.OperationsClient( - self.grpc_channel - ) - - # Return the client from cache. - return self._operations_client - - @property - def list_hubs(self) -> Callable[ - [hub.ListHubsRequest], - hub.ListHubsResponse]: - r"""Return a callable for the list hubs method over gRPC. - - Lists Hubs in a given project and location. - - Returns: - Callable[[~.ListHubsRequest], - ~.ListHubsResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_hubs' not in self._stubs: - self._stubs['list_hubs'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/ListHubs', - request_serializer=hub.ListHubsRequest.serialize, - response_deserializer=hub.ListHubsResponse.deserialize, - ) - return self._stubs['list_hubs'] - - @property - def get_hub(self) -> Callable[ - [hub.GetHubRequest], - hub.Hub]: - r"""Return a callable for the get hub method over gRPC. - - Gets details of a single Hub. - - Returns: - Callable[[~.GetHubRequest], - ~.Hub]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_hub' not in self._stubs: - self._stubs['get_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/GetHub', - request_serializer=hub.GetHubRequest.serialize, - response_deserializer=hub.Hub.deserialize, - ) - return self._stubs['get_hub'] - - @property - def create_hub(self) -> Callable[ - [gcn_hub.CreateHubRequest], - operations_pb2.Operation]: - r"""Return a callable for the create hub method over gRPC. - - Creates a new Hub in a given project and location. - - Returns: - Callable[[~.CreateHubRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_hub' not in self._stubs: - self._stubs['create_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/CreateHub', - request_serializer=gcn_hub.CreateHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_hub'] - - @property - def update_hub(self) -> Callable[ - [gcn_hub.UpdateHubRequest], - operations_pb2.Operation]: - r"""Return a callable for the update hub method over gRPC. - - Updates the parameters of a single Hub. - - Returns: - Callable[[~.UpdateHubRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'update_hub' not in self._stubs: - self._stubs['update_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/UpdateHub', - request_serializer=gcn_hub.UpdateHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['update_hub'] - - @property - def delete_hub(self) -> Callable[ - [hub.DeleteHubRequest], - operations_pb2.Operation]: - r"""Return a callable for the delete hub method over gRPC. - - Deletes a single Hub. - - Returns: - Callable[[~.DeleteHubRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_hub' not in self._stubs: - self._stubs['delete_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/DeleteHub', - request_serializer=hub.DeleteHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_hub'] - - @property - def list_spokes(self) -> Callable[ - [hub.ListSpokesRequest], - hub.ListSpokesResponse]: - r"""Return a callable for the list spokes method over gRPC. - - Lists Spokes in a given project and location. - - Returns: - Callable[[~.ListSpokesRequest], - ~.ListSpokesResponse]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_spokes' not in self._stubs: - self._stubs['list_spokes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/ListSpokes', - request_serializer=hub.ListSpokesRequest.serialize, - response_deserializer=hub.ListSpokesResponse.deserialize, - ) - return self._stubs['list_spokes'] - - @property - def get_spoke(self) -> Callable[ - [hub.GetSpokeRequest], - hub.Spoke]: - r"""Return a callable for the get spoke method over gRPC. - - Gets details of a single Spoke. - - Returns: - Callable[[~.GetSpokeRequest], - ~.Spoke]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_spoke' not in self._stubs: - self._stubs['get_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/GetSpoke', - request_serializer=hub.GetSpokeRequest.serialize, - response_deserializer=hub.Spoke.deserialize, - ) - return self._stubs['get_spoke'] - - @property - def create_spoke(self) -> Callable[ - [hub.CreateSpokeRequest], - operations_pb2.Operation]: - r"""Return a callable for the create spoke method over gRPC. - - Creates a new Spoke in a given project and location. - - Returns: - Callable[[~.CreateSpokeRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_spoke' not in self._stubs: - self._stubs['create_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/CreateSpoke', - request_serializer=hub.CreateSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_spoke'] - - @property - def update_spoke(self) -> Callable[ - [hub.UpdateSpokeRequest], - operations_pb2.Operation]: - r"""Return a callable for the update spoke method over gRPC. - - Updates the parameters of a single Spoke. - - Returns: - Callable[[~.UpdateSpokeRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'update_spoke' not in self._stubs: - self._stubs['update_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/UpdateSpoke', - request_serializer=hub.UpdateSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['update_spoke'] - - @property - def delete_spoke(self) -> Callable[ - [hub.DeleteSpokeRequest], - operations_pb2.Operation]: - r"""Return a callable for the delete spoke method over gRPC. - - Deletes a single Spoke. - - Returns: - Callable[[~.DeleteSpokeRequest], - ~.Operation]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_spoke' not in self._stubs: - self._stubs['delete_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/DeleteSpoke', - request_serializer=hub.DeleteSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_spoke'] - - def close(self): - self.grpc_channel.close() - - @property - def kind(self) -> str: - return "grpc" - - -__all__ = ( - 'HubServiceGrpcTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py deleted file mode 100644 index 05a7617d8a50..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/services/hub_service/transports/grpc_asyncio.py +++ /dev/null @@ -1,520 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import warnings -from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union - -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers_async -from google.api_core import operations_v1 -from google.auth import credentials as ga_credentials # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore - -import grpc # type: ignore -from grpc.experimental import aio # type: ignore - -from google.cloud.networkconnectivity_v1alpha1.types import hub -from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub -from google.longrunning import operations_pb2 # type: ignore -from .base import HubServiceTransport, DEFAULT_CLIENT_INFO -from .grpc import HubServiceGrpcTransport - - -class HubServiceGrpcAsyncIOTransport(HubServiceTransport): - """gRPC AsyncIO backend transport for HubService. - - Network Connectivity Center is a hub-and-spoke abstraction - for network connectivity management in Google Cloud. It reduces - operational complexity through a simple, centralized - connectivity management model. - - This class defines the same methods as the primary client, so the - primary client can load the underlying transport implementation - and call it. - - It sends protocol buffers over the wire using gRPC (which is built on - top of HTTP/2); the ``grpcio`` package must be installed. - """ - - _grpc_channel: aio.Channel - _stubs: Dict[str, Callable] = {} - - @classmethod - def create_channel(cls, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - quota_project_id: Optional[str] = None, - **kwargs) -> aio.Channel: - """Create and return a gRPC AsyncIO channel object. - Args: - host (Optional[str]): The host for the channel to use. - credentials (Optional[~.Credentials]): The - authorization credentials to attach to requests. These - credentials identify this application to the service. If - none are specified, the client will attempt to ascertain - the credentials from the environment. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional[Sequence[str]]): A optional list of scopes needed for this - service. These are only used when credentials are not specified and - are passed to :func:`google.auth.default`. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - kwargs (Optional[dict]): Keyword arguments, which are passed to the - channel creation. - Returns: - aio.Channel: A gRPC AsyncIO channel object. - """ - - return grpc_helpers_async.create_channel( - host, - credentials=credentials, - credentials_file=credentials_file, - quota_project_id=quota_project_id, - default_scopes=cls.AUTH_SCOPES, - scopes=scopes, - default_host=cls.DEFAULT_HOST, - **kwargs - ) - - def __init__(self, *, - host: str = 'networkconnectivity.googleapis.com', - credentials: Optional[ga_credentials.Credentials] = None, - credentials_file: Optional[str] = None, - scopes: Optional[Sequence[str]] = None, - channel: Optional[aio.Channel] = None, - api_mtls_endpoint: Optional[str] = None, - client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, - client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, - quota_project_id: Optional[str] = None, - client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, - always_use_jwt_access: Optional[bool] = False, - api_audience: Optional[str] = None, - ) -> None: - """Instantiate the transport. - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - This argument is ignored if ``channel`` is provided. - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional[Sequence[str]]): A optional list of scopes needed for this - service. These are only used when credentials are not specified and - are passed to :func:`google.auth.default`. - channel (Optional[aio.Channel]): A ``Channel`` instance through - which to make calls. - api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. - If provided, it overrides the ``host`` argument and tries to create - a mutual TLS channel with client SSL credentials from - ``client_cert_source`` or application default SSL credentials. - client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): - Deprecated. A callback to provide client SSL certificate bytes and - private key bytes, both in PEM format. It is ignored if - ``api_mtls_endpoint`` is None. - ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials - for the grpc channel. It is ignored if ``channel`` is provided. - client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): - A callback to provide client certificate bytes and private key bytes, - both in PEM format. It is used to configure a mutual TLS channel. It is - ignored if ``channel`` or ``ssl_channel_credentials`` is provided. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you're developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - - Raises: - google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport - creation failed for any reason. - google.api_core.exceptions.DuplicateCredentialArgs: If both ``credentials`` - and ``credentials_file`` are passed. - """ - self._grpc_channel = None - self._ssl_channel_credentials = ssl_channel_credentials - self._stubs: Dict[str, Callable] = {} - self._operations_client: Optional[operations_v1.OperationsAsyncClient] = None - - if api_mtls_endpoint: - warnings.warn("api_mtls_endpoint is deprecated", DeprecationWarning) - if client_cert_source: - warnings.warn("client_cert_source is deprecated", DeprecationWarning) - - if channel: - # Ignore credentials if a channel was passed. - credentials = False - # If a channel was explicitly provided, set it. - self._grpc_channel = channel - self._ssl_channel_credentials = None - else: - if api_mtls_endpoint: - host = api_mtls_endpoint - - # Create SSL credentials with client_cert_source or application - # default SSL credentials. - if client_cert_source: - cert, key = client_cert_source() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - else: - self._ssl_channel_credentials = SslCredentials().ssl_credentials - - else: - if client_cert_source_for_mtls and not ssl_channel_credentials: - cert, key = client_cert_source_for_mtls() - self._ssl_channel_credentials = grpc.ssl_channel_credentials( - certificate_chain=cert, private_key=key - ) - - # The base transport sets the host, credentials and scopes - super().__init__( - host=host, - credentials=credentials, - credentials_file=credentials_file, - scopes=scopes, - quota_project_id=quota_project_id, - client_info=client_info, - always_use_jwt_access=always_use_jwt_access, - api_audience=api_audience, - ) - - if not self._grpc_channel: - self._grpc_channel = type(self).create_channel( - self._host, - # use the credentials which are saved - credentials=self._credentials, - # Set ``credentials_file`` to ``None`` here as - # the credentials that we saved earlier should be used. - credentials_file=None, - scopes=self._scopes, - ssl_credentials=self._ssl_channel_credentials, - quota_project_id=quota_project_id, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - # Wrap messages. This must be done after self._grpc_channel exists - self._prep_wrapped_messages(client_info) - - @property - def grpc_channel(self) -> aio.Channel: - """Create the channel designed to connect to this service. - - This property caches on the instance; repeated calls return - the same channel. - """ - # Return the channel from cache. - return self._grpc_channel - - @property - def operations_client(self) -> operations_v1.OperationsAsyncClient: - """Create the client designed to process long-running operations. - - This property caches on the instance; repeated calls return the same - client. - """ - # Quick check: Only create a new client if we do not already have one. - if self._operations_client is None: - self._operations_client = operations_v1.OperationsAsyncClient( - self.grpc_channel - ) - - # Return the client from cache. - return self._operations_client - - @property - def list_hubs(self) -> Callable[ - [hub.ListHubsRequest], - Awaitable[hub.ListHubsResponse]]: - r"""Return a callable for the list hubs method over gRPC. - - Lists Hubs in a given project and location. - - Returns: - Callable[[~.ListHubsRequest], - Awaitable[~.ListHubsResponse]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_hubs' not in self._stubs: - self._stubs['list_hubs'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/ListHubs', - request_serializer=hub.ListHubsRequest.serialize, - response_deserializer=hub.ListHubsResponse.deserialize, - ) - return self._stubs['list_hubs'] - - @property - def get_hub(self) -> Callable[ - [hub.GetHubRequest], - Awaitable[hub.Hub]]: - r"""Return a callable for the get hub method over gRPC. - - Gets details of a single Hub. - - Returns: - Callable[[~.GetHubRequest], - Awaitable[~.Hub]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_hub' not in self._stubs: - self._stubs['get_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/GetHub', - request_serializer=hub.GetHubRequest.serialize, - response_deserializer=hub.Hub.deserialize, - ) - return self._stubs['get_hub'] - - @property - def create_hub(self) -> Callable[ - [gcn_hub.CreateHubRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the create hub method over gRPC. - - Creates a new Hub in a given project and location. - - Returns: - Callable[[~.CreateHubRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_hub' not in self._stubs: - self._stubs['create_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/CreateHub', - request_serializer=gcn_hub.CreateHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_hub'] - - @property - def update_hub(self) -> Callable[ - [gcn_hub.UpdateHubRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the update hub method over gRPC. - - Updates the parameters of a single Hub. - - Returns: - Callable[[~.UpdateHubRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'update_hub' not in self._stubs: - self._stubs['update_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/UpdateHub', - request_serializer=gcn_hub.UpdateHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['update_hub'] - - @property - def delete_hub(self) -> Callable[ - [hub.DeleteHubRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the delete hub method over gRPC. - - Deletes a single Hub. - - Returns: - Callable[[~.DeleteHubRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_hub' not in self._stubs: - self._stubs['delete_hub'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/DeleteHub', - request_serializer=hub.DeleteHubRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_hub'] - - @property - def list_spokes(self) -> Callable[ - [hub.ListSpokesRequest], - Awaitable[hub.ListSpokesResponse]]: - r"""Return a callable for the list spokes method over gRPC. - - Lists Spokes in a given project and location. - - Returns: - Callable[[~.ListSpokesRequest], - Awaitable[~.ListSpokesResponse]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'list_spokes' not in self._stubs: - self._stubs['list_spokes'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/ListSpokes', - request_serializer=hub.ListSpokesRequest.serialize, - response_deserializer=hub.ListSpokesResponse.deserialize, - ) - return self._stubs['list_spokes'] - - @property - def get_spoke(self) -> Callable[ - [hub.GetSpokeRequest], - Awaitable[hub.Spoke]]: - r"""Return a callable for the get spoke method over gRPC. - - Gets details of a single Spoke. - - Returns: - Callable[[~.GetSpokeRequest], - Awaitable[~.Spoke]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'get_spoke' not in self._stubs: - self._stubs['get_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/GetSpoke', - request_serializer=hub.GetSpokeRequest.serialize, - response_deserializer=hub.Spoke.deserialize, - ) - return self._stubs['get_spoke'] - - @property - def create_spoke(self) -> Callable[ - [hub.CreateSpokeRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the create spoke method over gRPC. - - Creates a new Spoke in a given project and location. - - Returns: - Callable[[~.CreateSpokeRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'create_spoke' not in self._stubs: - self._stubs['create_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/CreateSpoke', - request_serializer=hub.CreateSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['create_spoke'] - - @property - def update_spoke(self) -> Callable[ - [hub.UpdateSpokeRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the update spoke method over gRPC. - - Updates the parameters of a single Spoke. - - Returns: - Callable[[~.UpdateSpokeRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'update_spoke' not in self._stubs: - self._stubs['update_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/UpdateSpoke', - request_serializer=hub.UpdateSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['update_spoke'] - - @property - def delete_spoke(self) -> Callable[ - [hub.DeleteSpokeRequest], - Awaitable[operations_pb2.Operation]]: - r"""Return a callable for the delete spoke method over gRPC. - - Deletes a single Spoke. - - Returns: - Callable[[~.DeleteSpokeRequest], - Awaitable[~.Operation]]: - A function that, when called, will call the underlying RPC - on the server. - """ - # Generate a "stub function" on-the-fly which will actually make - # the request. - # gRPC handles serialization and deserialization, so we just need - # to pass in the functions for each. - if 'delete_spoke' not in self._stubs: - self._stubs['delete_spoke'] = self.grpc_channel.unary_unary( - '/google.cloud.networkconnectivity.v1alpha1.HubService/DeleteSpoke', - request_serializer=hub.DeleteSpokeRequest.serialize, - response_deserializer=operations_pb2.Operation.FromString, - ) - return self._stubs['delete_spoke'] - - def close(self): - return self.grpc_channel.close() - - -__all__ = ( - 'HubServiceGrpcAsyncIOTransport', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/__init__.py deleted file mode 100644 index 29685052d856..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/__init__.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from .common import ( - OperationMetadata, -) -from .hub import ( - CreateHubRequest, - CreateSpokeRequest, - DeleteHubRequest, - DeleteSpokeRequest, - GetHubRequest, - GetSpokeRequest, - Hub, - ListHubsRequest, - ListHubsResponse, - ListSpokesRequest, - ListSpokesResponse, - RouterApplianceInstance, - Spoke, - UpdateHubRequest, - UpdateSpokeRequest, - State, -) - -__all__ = ( - 'OperationMetadata', - 'CreateHubRequest', - 'CreateSpokeRequest', - 'DeleteHubRequest', - 'DeleteSpokeRequest', - 'GetHubRequest', - 'GetSpokeRequest', - 'Hub', - 'ListHubsRequest', - 'ListHubsResponse', - 'ListSpokesRequest', - 'ListSpokesResponse', - 'RouterApplianceInstance', - 'Spoke', - 'UpdateHubRequest', - 'UpdateSpokeRequest', - 'State', -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/common.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/common.py deleted file mode 100644 index a1fe9dd4b670..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/common.py +++ /dev/null @@ -1,95 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from __future__ import annotations - -from typing import MutableMapping, MutableSequence - -import proto # type: ignore - -from google.protobuf import timestamp_pb2 # type: ignore - - -__protobuf__ = proto.module( - package='google.cloud.networkconnectivity.v1alpha1', - manifest={ - 'OperationMetadata', - }, -) - - -class OperationMetadata(proto.Message): - r"""Represents the metadata of the long-running operation. - - Attributes: - create_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the operation was - created. - end_time (google.protobuf.timestamp_pb2.Timestamp): - Output only. The time the operation finished - running. - target (str): - Output only. Server-defined resource path for - the target of the operation. - verb (str): - Output only. Name of the verb executed by the - operation. - status_message (str): - Output only. Human-readable status of the - operation, if any. - requested_cancellation (bool): - Output only. Identifies whether the user has requested - cancellation of the operation. Operations that have - successfully been cancelled have [Operation.error][] value - with a [google.rpc.Status.code][google.rpc.Status.code] of - 1, corresponding to ``Code.CANCELLED``. - api_version (str): - Output only. API version used to start the - operation. - """ - - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=1, - message=timestamp_pb2.Timestamp, - ) - end_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=2, - message=timestamp_pb2.Timestamp, - ) - target: str = proto.Field( - proto.STRING, - number=3, - ) - verb: str = proto.Field( - proto.STRING, - number=4, - ) - status_message: str = proto.Field( - proto.STRING, - number=5, - ) - requested_cancellation: bool = proto.Field( - proto.BOOL, - number=6, - ) - api_version: str = proto.Field( - proto.STRING, - number=7, - ) - - -__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/hub.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/hub.py deleted file mode 100644 index 190cd37b36f3..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/google/cloud/networkconnectivity_v1alpha1/types/hub.py +++ /dev/null @@ -1,731 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -from __future__ import annotations - -from typing import MutableMapping, MutableSequence - -import proto # type: ignore - -from google.protobuf import field_mask_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore - - -__protobuf__ = proto.module( - package='google.cloud.networkconnectivity.v1alpha1', - manifest={ - 'State', - 'Hub', - 'Spoke', - 'ListHubsRequest', - 'ListHubsResponse', - 'GetHubRequest', - 'CreateHubRequest', - 'UpdateHubRequest', - 'DeleteHubRequest', - 'ListSpokesRequest', - 'ListSpokesResponse', - 'GetSpokeRequest', - 'CreateSpokeRequest', - 'UpdateSpokeRequest', - 'DeleteSpokeRequest', - 'RouterApplianceInstance', - }, -) - - -class State(proto.Enum): - r"""The State enum represents the lifecycle of a Network - Connectivity Center resource. - - Values: - STATE_UNSPECIFIED (0): - No state information available - CREATING (1): - The resource's create operation is in - progress - ACTIVE (2): - The resource is active - DELETING (3): - The resource's Delete operation is in - progress - """ - STATE_UNSPECIFIED = 0 - CREATING = 1 - ACTIVE = 2 - DELETING = 3 - - -class Hub(proto.Message): - r"""Network Connectivity Center is a hub-and-spoke abstraction - for network connectivity management in Google Cloud. It reduces - operational complexity through a simple, centralized - connectivity management model. Following is the resource message - of a hub. - - Attributes: - name (str): - Immutable. The name of a Hub resource. - create_time (google.protobuf.timestamp_pb2.Timestamp): - Time when the Hub was created. - update_time (google.protobuf.timestamp_pb2.Timestamp): - Time when the Hub was updated. - labels (MutableMapping[str, str]): - User-defined labels. - description (str): - Short description of the hub resource. - spokes (MutableSequence[str]): - Output only. A list of the URIs of all - attached spokes - unique_id (str): - Output only. Google-generated UUID for this resource. This - is unique across all Hub resources. If a Hub resource is - deleted and another with the same name is created, it gets a - different unique_id. - state (google.cloud.networkconnectivity_v1alpha1.types.State): - Output only. The current lifecycle state of - this Hub. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=2, - message=timestamp_pb2.Timestamp, - ) - update_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=3, - message=timestamp_pb2.Timestamp, - ) - labels: MutableMapping[str, str] = proto.MapField( - proto.STRING, - proto.STRING, - number=4, - ) - description: str = proto.Field( - proto.STRING, - number=5, - ) - spokes: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=6, - ) - unique_id: str = proto.Field( - proto.STRING, - number=8, - ) - state: 'State' = proto.Field( - proto.ENUM, - number=9, - enum='State', - ) - - -class Spoke(proto.Message): - r"""A Spoke is an abstraction of a network attachment being - attached to a Hub. A Spoke can be underlying a VPN tunnel, a - VLAN (interconnect) attachment, a Router appliance, etc. - - Attributes: - name (str): - Immutable. The name of a Spoke resource. - create_time (google.protobuf.timestamp_pb2.Timestamp): - The time when the Spoke was created. - update_time (google.protobuf.timestamp_pb2.Timestamp): - The time when the Spoke was updated. - labels (MutableMapping[str, str]): - User-defined labels. - description (str): - Short description of the spoke resource - hub (str): - The resource URL of the hub resource that the - spoke is attached to - linked_vpn_tunnels (MutableSequence[str]): - The URIs of linked VPN tunnel resources - linked_interconnect_attachments (MutableSequence[str]): - The URIs of linked interconnect attachment - resources - linked_router_appliance_instances (MutableSequence[google.cloud.networkconnectivity_v1alpha1.types.RouterApplianceInstance]): - The URIs of linked Router appliance resources - unique_id (str): - Output only. Google-generated UUID for this resource. This - is unique across all Spoke resources. If a Spoke resource is - deleted and another with the same name is created, it gets a - different unique_id. - state (google.cloud.networkconnectivity_v1alpha1.types.State): - Output only. The current lifecycle state of - this Hub. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - create_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=2, - message=timestamp_pb2.Timestamp, - ) - update_time: timestamp_pb2.Timestamp = proto.Field( - proto.MESSAGE, - number=3, - message=timestamp_pb2.Timestamp, - ) - labels: MutableMapping[str, str] = proto.MapField( - proto.STRING, - proto.STRING, - number=4, - ) - description: str = proto.Field( - proto.STRING, - number=5, - ) - hub: str = proto.Field( - proto.STRING, - number=6, - ) - linked_vpn_tunnels: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=12, - ) - linked_interconnect_attachments: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=13, - ) - linked_router_appliance_instances: MutableSequence['RouterApplianceInstance'] = proto.RepeatedField( - proto.MESSAGE, - number=14, - message='RouterApplianceInstance', - ) - unique_id: str = proto.Field( - proto.STRING, - number=11, - ) - state: 'State' = proto.Field( - proto.ENUM, - number=15, - enum='State', - ) - - -class ListHubsRequest(proto.Message): - r"""Request for - [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] - method. - - Attributes: - parent (str): - Required. The parent resource's name. - page_size (int): - The maximum number of results per page that - should be returned. - page_token (str): - The page token. - filter (str): - A filter expression that filters the results - listed in the response. - order_by (str): - Sort the results by a certain order. - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - page_size: int = proto.Field( - proto.INT32, - number=2, - ) - page_token: str = proto.Field( - proto.STRING, - number=3, - ) - filter: str = proto.Field( - proto.STRING, - number=4, - ) - order_by: str = proto.Field( - proto.STRING, - number=5, - ) - - -class ListHubsResponse(proto.Message): - r"""Response for - [HubService.ListHubs][google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs] - method. - - Attributes: - hubs (MutableSequence[google.cloud.networkconnectivity_v1alpha1.types.Hub]): - Hubs to be returned. - next_page_token (str): - The next pagination token in the List response. It should be - used as page_token for the following request. An empty value - means no more result. - unreachable (MutableSequence[str]): - Locations that could not be reached. - """ - - @property - def raw_page(self): - return self - - hubs: MutableSequence['Hub'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='Hub', - ) - next_page_token: str = proto.Field( - proto.STRING, - number=2, - ) - unreachable: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=3, - ) - - -class GetHubRequest(proto.Message): - r"""Request for - [HubService.GetHub][google.cloud.networkconnectivity.v1alpha1.HubService.GetHub] - method. - - Attributes: - name (str): - Required. Name of the Hub resource to get. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - - -class CreateHubRequest(proto.Message): - r"""Request for - [HubService.CreateHub][google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub] - method. - - Attributes: - parent (str): - Required. The parent resource's name of the - Hub. - hub_id (str): - Optional. Unique id for the Hub to create. - hub (google.cloud.networkconnectivity_v1alpha1.types.Hub): - Required. Initial values for a new Hub. - request_id (str): - Optional. 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. The server will guarantee that - for at least 60 minutes since the first request. - - For example, consider a situation where you make - an initial request and t he 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). - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - hub_id: str = proto.Field( - proto.STRING, - number=2, - ) - hub: 'Hub' = proto.Field( - proto.MESSAGE, - number=3, - message='Hub', - ) - request_id: str = proto.Field( - proto.STRING, - number=4, - ) - - -class UpdateHubRequest(proto.Message): - r"""Request for - [HubService.UpdateHub][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub] - method. - - Attributes: - update_mask (google.protobuf.field_mask_pb2.FieldMask): - Optional. Field mask is used to specify the fields to be - overwritten in the Hub resource by the update. The fields - specified in the update_mask are relative to the resource, - not the full request. A field will be overwritten if it is - in the mask. If the user does not provide a mask then all - fields will be overwritten. - hub (google.cloud.networkconnectivity_v1alpha1.types.Hub): - Required. The state that the Hub should be in - after the update. - request_id (str): - Optional. 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. The server will guarantee that - for at least 60 minutes since the first request. - - For example, consider a situation where you make - an initial request and t he 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). - """ - - update_mask: field_mask_pb2.FieldMask = proto.Field( - proto.MESSAGE, - number=1, - message=field_mask_pb2.FieldMask, - ) - hub: 'Hub' = proto.Field( - proto.MESSAGE, - number=2, - message='Hub', - ) - request_id: str = proto.Field( - proto.STRING, - number=3, - ) - - -class DeleteHubRequest(proto.Message): - r"""The request for - [HubService.DeleteHub][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub]. - - Attributes: - name (str): - Required. The name of the Hub to delete. - request_id (str): - Optional. 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. The server will guarantee that - for at least 60 minutes after the first request. - - For example, consider a situation where you make - an initial request and t he 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). - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - request_id: str = proto.Field( - proto.STRING, - number=2, - ) - - -class ListSpokesRequest(proto.Message): - r"""The request for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. - - Attributes: - parent (str): - Required. The parent's resource name. - page_size (int): - The maximum number of results per page that - should be returned. - page_token (str): - The page token. - filter (str): - A filter expression that filters the results - listed in the response. - order_by (str): - Sort the results by a certain order. - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - page_size: int = proto.Field( - proto.INT32, - number=2, - ) - page_token: str = proto.Field( - proto.STRING, - number=3, - ) - filter: str = proto.Field( - proto.STRING, - number=4, - ) - order_by: str = proto.Field( - proto.STRING, - number=5, - ) - - -class ListSpokesResponse(proto.Message): - r"""The response for - [HubService.ListSpokes][google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes]. - - Attributes: - spokes (MutableSequence[google.cloud.networkconnectivity_v1alpha1.types.Spoke]): - Spokes to be returned. - next_page_token (str): - The next pagination token in the List response. It should be - used as page_token for the following request. An empty value - means no more result. - unreachable (MutableSequence[str]): - Locations that could not be reached. - """ - - @property - def raw_page(self): - return self - - spokes: MutableSequence['Spoke'] = proto.RepeatedField( - proto.MESSAGE, - number=1, - message='Spoke', - ) - next_page_token: str = proto.Field( - proto.STRING, - number=2, - ) - unreachable: MutableSequence[str] = proto.RepeatedField( - proto.STRING, - number=3, - ) - - -class GetSpokeRequest(proto.Message): - r"""The request for - [HubService.GetSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke]. - - Attributes: - name (str): - Required. The name of Spoke resource. - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - - -class CreateSpokeRequest(proto.Message): - r"""The request for - [HubService.CreateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke]. - - Attributes: - parent (str): - Required. The parent's resource name of the - Spoke. - spoke_id (str): - Optional. Unique id for the Spoke to create. - spoke (google.cloud.networkconnectivity_v1alpha1.types.Spoke): - Required. Initial values for a new Hub. - request_id (str): - Optional. 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. The server will guarantee that - for at least 60 minutes since the first request. - - For example, consider a situation where you make - an initial request and t he 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). - """ - - parent: str = proto.Field( - proto.STRING, - number=1, - ) - spoke_id: str = proto.Field( - proto.STRING, - number=2, - ) - spoke: 'Spoke' = proto.Field( - proto.MESSAGE, - number=3, - message='Spoke', - ) - request_id: str = proto.Field( - proto.STRING, - number=4, - ) - - -class UpdateSpokeRequest(proto.Message): - r"""Request for - [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke] - method. - - Attributes: - update_mask (google.protobuf.field_mask_pb2.FieldMask): - Optional. Field mask is used to specify the fields to be - overwritten in the Spoke resource by the update. The fields - specified in the update_mask are relative to the resource, - not the full request. A field will be overwritten if it is - in the mask. If the user does not provide a mask then all - fields will be overwritten. - spoke (google.cloud.networkconnectivity_v1alpha1.types.Spoke): - Required. The state that the Spoke should be - in after the update. - request_id (str): - Optional. 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. The server will guarantee that - for at least 60 minutes since the first request. - - For example, consider a situation where you make - an initial request and t he 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). - """ - - update_mask: field_mask_pb2.FieldMask = proto.Field( - proto.MESSAGE, - number=1, - message=field_mask_pb2.FieldMask, - ) - spoke: 'Spoke' = proto.Field( - proto.MESSAGE, - number=2, - message='Spoke', - ) - request_id: str = proto.Field( - proto.STRING, - number=3, - ) - - -class DeleteSpokeRequest(proto.Message): - r"""The request for - [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke]. - - Attributes: - name (str): - Required. The name of the Spoke to delete. - request_id (str): - Optional. 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. The server will guarantee that - for at least 60 minutes after the first request. - - For example, consider a situation where you make - an initial request and t he 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). - """ - - name: str = proto.Field( - proto.STRING, - number=1, - ) - request_id: str = proto.Field( - proto.STRING, - number=2, - ) - - -class RouterApplianceInstance(proto.Message): - r"""RouterAppliance represents a Router appliance which is - specified by a VM URI and a NIC address. - - Attributes: - virtual_machine (str): - The URI of the virtual machine resource - ip_address (str): - The IP address of the network interface to - use for peering. - network_interface (str): - - """ - - virtual_machine: str = proto.Field( - proto.STRING, - number=1, - ) - ip_address: str = proto.Field( - proto.STRING, - number=3, - ) - network_interface: str = proto.Field( - proto.STRING, - number=2, - ) - - -__all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/mypy.ini b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/mypy.ini deleted file mode 100644 index 574c5aed394b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/mypy.ini +++ /dev/null @@ -1,3 +0,0 @@ -[mypy] -python_version = 3.7 -namespace_packages = True diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/noxfile.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/noxfile.py deleted file mode 100644 index 8064dc814515..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/noxfile.py +++ /dev/null @@ -1,184 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import os -import pathlib -import shutil -import subprocess -import sys - - -import nox # type: ignore - -ALL_PYTHON = [ - "3.7", - "3.8", - "3.9", - "3.10", - "3.11", -] - -CURRENT_DIRECTORY = pathlib.Path(__file__).parent.absolute() - -LOWER_BOUND_CONSTRAINTS_FILE = CURRENT_DIRECTORY / "constraints.txt" -PACKAGE_NAME = subprocess.check_output([sys.executable, "setup.py", "--name"], encoding="utf-8") - -BLACK_VERSION = "black==22.3.0" -BLACK_PATHS = ["docs", "google", "tests", "samples", "noxfile.py", "setup.py"] -DEFAULT_PYTHON_VERSION = "3.11" - -nox.sessions = [ - "unit", - "cover", - "mypy", - "check_lower_bounds" - # exclude update_lower_bounds from default - "docs", - "blacken", - "lint", - "lint_setup_py", -] - -@nox.session(python=ALL_PYTHON) -def unit(session): - """Run the unit test suite.""" - - session.install('coverage', 'pytest', 'pytest-cov', 'pytest-asyncio', 'asyncmock; python_version < "3.8"') - session.install('-e', '.') - - session.run( - 'py.test', - '--quiet', - '--cov=google/cloud/networkconnectivity_v1alpha1/', - '--cov=tests/', - '--cov-config=.coveragerc', - '--cov-report=term', - '--cov-report=html', - os.path.join('tests', 'unit', ''.join(session.posargs)) - ) - - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def cover(session): - """Run the final coverage report. - This outputs the coverage report aggregating coverage from the unit - test runs (not system test runs), and then erases coverage data. - """ - session.install("coverage", "pytest-cov") - session.run("coverage", "report", "--show-missing", "--fail-under=100") - - session.run("coverage", "erase") - - -@nox.session(python=ALL_PYTHON) -def mypy(session): - """Run the type checker.""" - session.install( - 'mypy', - 'types-requests', - 'types-protobuf' - ) - session.install('.') - session.run( - 'mypy', - '--explicit-package-bases', - 'google', - ) - - -@nox.session -def update_lower_bounds(session): - """Update lower bounds in constraints.txt to match setup.py""" - session.install('google-cloud-testutils') - session.install('.') - - session.run( - 'lower-bound-checker', - 'update', - '--package-name', - PACKAGE_NAME, - '--constraints-file', - str(LOWER_BOUND_CONSTRAINTS_FILE), - ) - - -@nox.session -def check_lower_bounds(session): - """Check lower bounds in setup.py are reflected in constraints file""" - session.install('google-cloud-testutils') - session.install('.') - - session.run( - 'lower-bound-checker', - 'check', - '--package-name', - PACKAGE_NAME, - '--constraints-file', - str(LOWER_BOUND_CONSTRAINTS_FILE), - ) - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def docs(session): - """Build the docs for this library.""" - - session.install("-e", ".") - session.install("sphinx==7.0.1", "alabaster", "recommonmark") - - shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) - session.run( - "sphinx-build", - "-W", # warnings as errors - "-T", # show full traceback on exception - "-N", # no colors - "-b", - "html", - "-d", - os.path.join("docs", "_build", "doctrees", ""), - os.path.join("docs", ""), - os.path.join("docs", "_build", "html", ""), - ) - - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def lint(session): - """Run linters. - - Returns a failure if the linters find linting errors or sufficiently - serious code quality issues. - """ - session.install("flake8", BLACK_VERSION) - session.run( - "black", - "--check", - *BLACK_PATHS, - ) - session.run("flake8", "google", "tests", "samples") - - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def blacken(session): - """Run black. Format code to uniform standard.""" - session.install(BLACK_VERSION) - session.run( - "black", - *BLACK_PATHS, - ) - - -@nox.session(python=DEFAULT_PYTHON_VERSION) -def lint_setup_py(session): - """Verify that setup.py is valid (including RST check).""" - session.install("docutils", "pygments") - session.run("python", "setup.py", "check", "--restructuredtext", "--strict") diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py deleted file mode 100644 index f71e88b4ea86..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreateHub -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_CreateHub_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_create_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.CreateHubRequest( - parent="parent_value", - ) - - # Make the request - operation = client.create_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_CreateHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py deleted file mode 100644 index 43688bbe4272..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreateHub -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_CreateHub_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 networkconnectivity_v1alpha1 - - -def sample_create_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.CreateHubRequest( - parent="parent_value", - ) - - # Make the request - operation = client.create_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_CreateHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py deleted file mode 100644 index debf60dcae98..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreateSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_create_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.CreateSpokeRequest( - parent="parent_value", - ) - - # Make the request - operation = client.create_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py deleted file mode 100644 index 14487d80ccab..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 CreateSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_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 networkconnectivity_v1alpha1 - - -def sample_create_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.CreateSpokeRequest( - parent="parent_value", - ) - - # Make the request - operation = client.create_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py deleted file mode 100644 index fd3a2fe3c41b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeleteHub -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_DeleteHub_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_delete_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.DeleteHubRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_DeleteHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py deleted file mode 100644 index c117bcc7636e..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeleteHub -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_DeleteHub_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 networkconnectivity_v1alpha1 - - -def sample_delete_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.DeleteHubRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_DeleteHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py deleted file mode 100644 index f3a26998dbca..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeleteSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_delete_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.DeleteSpokeRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py deleted file mode 100644 index 7a11e37e9ad5..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 DeleteSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_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 networkconnectivity_v1alpha1 - - -def sample_delete_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.DeleteSpokeRequest( - name="name_value", - ) - - # Make the request - operation = client.delete_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py deleted file mode 100644 index 22ce9ffbd59b..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetHub -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_GetHub_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_get_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.GetHubRequest( - name="name_value", - ) - - # Make the request - response = await client.get_hub(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_GetHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py deleted file mode 100644 index eb11b71431ec..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetHub -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_GetHub_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 networkconnectivity_v1alpha1 - - -def sample_get_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.GetHubRequest( - name="name_value", - ) - - # Make the request - response = client.get_hub(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_GetHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py deleted file mode 100644 index 0d28cbd28635..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_GetSpoke_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_get_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.GetSpokeRequest( - name="name_value", - ) - - # Make the request - response = await client.get_spoke(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_GetSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py deleted file mode 100644 index 88fe0ef3cf71..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 GetSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_GetSpoke_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 networkconnectivity_v1alpha1 - - -def sample_get_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.GetSpokeRequest( - name="name_value", - ) - - # Make the request - response = client.get_spoke(request=request) - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_GetSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py deleted file mode 100644 index 3d9e628ffeac..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListHubs -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_ListHubs_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_list_hubs(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.ListHubsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_hubs(request=request) - - # Handle the response - async for response in page_result: - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_ListHubs_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py deleted file mode 100644 index 7f68489a6034..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListHubs -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_ListHubs_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 networkconnectivity_v1alpha1 - - -def sample_list_hubs(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.ListHubsRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_hubs(request=request) - - # Handle the response - for response in page_result: - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_ListHubs_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py deleted file mode 100644 index d77edbfb4636..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListSpokes -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_ListSpokes_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_list_spokes(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.ListSpokesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_spokes(request=request) - - # Handle the response - async for response in page_result: - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_ListSpokes_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py deleted file mode 100644 index 67f22dbbe013..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 ListSpokes -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_ListSpokes_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 networkconnectivity_v1alpha1 - - -def sample_list_spokes(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.ListSpokesRequest( - parent="parent_value", - ) - - # Make the request - page_result = client.list_spokes(request=request) - - # Handle the response - for response in page_result: - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_ListSpokes_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py deleted file mode 100644 index 84bdc2e47120..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 UpdateHub -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_UpdateHub_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_update_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.UpdateHubRequest( - ) - - # Make the request - operation = client.update_hub(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_UpdateHub_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py deleted file mode 100644 index 39eb93404165..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 UpdateHub -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_UpdateHub_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 networkconnectivity_v1alpha1 - - -def sample_update_hub(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.UpdateHubRequest( - ) - - # Make the request - operation = client.update_hub(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_UpdateHub_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py deleted file mode 100644 index d98ce6cd34c7..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 UpdateSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_async] -# 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 networkconnectivity_v1alpha1 - - -async def sample_update_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceAsyncClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.UpdateSpokeRequest( - ) - - # Make the request - operation = client.update_spoke(request=request) - - print("Waiting for operation to complete...") - - response = (await operation).result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_async] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py deleted file mode 100644 index f2ee728101d7..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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 UpdateSpoke -# 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-network-connectivity - - -# [START networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_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 networkconnectivity_v1alpha1 - - -def sample_update_spoke(): - # Create a client - client = networkconnectivity_v1alpha1.HubServiceClient() - - # Initialize request argument(s) - request = networkconnectivity_v1alpha1.UpdateSpokeRequest( - ) - - # Make the request - operation = client.update_spoke(request=request) - - print("Waiting for operation to complete...") - - response = operation.result() - - # Handle the response - print(response) - -# [END networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_sync] diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json deleted file mode 100644 index 7d9f482d0d17..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json +++ /dev/null @@ -1,1673 +0,0 @@ -{ - "clientLibrary": { - "apis": [ - { - "id": "google.cloud.networkconnectivity.v1alpha1", - "version": "v1alpha1" - } - ], - "language": "PYTHON", - "name": "google-cloud-network-connectivity", - "version": "0.1.0" - }, - "snippets": [ - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.create_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "CreateHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "hub", - "type": "google.cloud.networkconnectivity_v1alpha1.types.Hub" - }, - { - "name": "hub_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "create_hub" - }, - "description": "Sample for CreateHub", - "file": "networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_CreateHub_async", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_create_hub_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.create_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.CreateHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "CreateHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.CreateHubRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "hub", - "type": "google.cloud.networkconnectivity_v1alpha1.types.Hub" - }, - { - "name": "hub_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "create_hub" - }, - "description": "Sample for CreateHub", - "file": "networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_CreateHub_sync", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_create_hub_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.create_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "CreateSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "spoke", - "type": "google.cloud.networkconnectivity_v1alpha1.types.Spoke" - }, - { - "name": "spoke_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "create_spoke" - }, - "description": "Sample for CreateSpoke", - "file": "networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_async", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_create_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.create_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.CreateSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "CreateSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.CreateSpokeRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "spoke", - "type": "google.cloud.networkconnectivity_v1alpha1.types.Spoke" - }, - { - "name": "spoke_id", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "create_spoke" - }, - "description": "Sample for CreateSpoke", - "file": "networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_CreateSpoke_sync", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_create_spoke_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.delete_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "DeleteHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "delete_hub" - }, - "description": "Sample for DeleteHub", - "file": "networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_DeleteHub_async", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_delete_hub_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.delete_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.DeleteHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "DeleteHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.DeleteHubRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "delete_hub" - }, - "description": "Sample for DeleteHub", - "file": "networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_DeleteHub_sync", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_delete_hub_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.delete_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "DeleteSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "delete_spoke" - }, - "description": "Sample for DeleteSpoke", - "file": "networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_async", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.delete_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.DeleteSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "DeleteSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.DeleteSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "delete_spoke" - }, - "description": "Sample for DeleteSpoke", - "file": "networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_DeleteSpoke_sync", - "segments": [ - { - "end": 55, - "start": 27, - "type": "FULL" - }, - { - "end": 55, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 52, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 56, - "start": 53, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_delete_spoke_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.get_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.GetHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "GetHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1alpha1.types.Hub", - "shortName": "get_hub" - }, - "description": "Sample for GetHub", - "file": "networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_GetHub_async", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_get_hub_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.get_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.GetHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "GetHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.GetHubRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1alpha1.types.Hub", - "shortName": "get_hub" - }, - "description": "Sample for GetHub", - "file": "networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_GetHub_sync", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_get_hub_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.get_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "GetSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1alpha1.types.Spoke", - "shortName": "get_spoke" - }, - "description": "Sample for GetSpoke", - "file": "networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_GetSpoke_async", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_get_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.get_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.GetSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "GetSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.GetSpokeRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1alpha1.types.Spoke", - "shortName": "get_spoke" - }, - "description": "Sample for GetSpoke", - "file": "networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_GetSpoke_sync", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "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": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_get_spoke_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.list_hubs", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "ListHubs" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListHubsAsyncPager", - "shortName": "list_hubs" - }, - "description": "Sample for ListHubs", - "file": "networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_ListHubs_async", - "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": "networkconnectivity_v1alpha1_generated_hub_service_list_hubs_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.list_hubs", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.ListHubs", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "ListHubs" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.ListHubsRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListHubsPager", - "shortName": "list_hubs" - }, - "description": "Sample for ListHubs", - "file": "networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_ListHubs_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": "networkconnectivity_v1alpha1_generated_hub_service_list_hubs_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.list_spokes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "ListSpokes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListSpokesAsyncPager", - "shortName": "list_spokes" - }, - "description": "Sample for ListSpokes", - "file": "networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_ListSpokes_async", - "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": "networkconnectivity_v1alpha1_generated_hub_service_list_spokes_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.list_spokes", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.ListSpokes", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "ListSpokes" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.ListSpokesRequest" - }, - { - "name": "parent", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.cloud.networkconnectivity_v1alpha1.services.hub_service.pagers.ListSpokesPager", - "shortName": "list_spokes" - }, - "description": "Sample for ListSpokes", - "file": "networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_ListSpokes_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": "networkconnectivity_v1alpha1_generated_hub_service_list_spokes_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.update_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "UpdateHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest" - }, - { - "name": "hub", - "type": "google.cloud.networkconnectivity_v1alpha1.types.Hub" - }, - { - "name": "update_mask", - "type": "google.protobuf.field_mask_pb2.FieldMask" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "update_hub" - }, - "description": "Sample for UpdateHub", - "file": "networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_UpdateHub_async", - "segments": [ - { - "end": 54, - "start": 27, - "type": "FULL" - }, - { - "end": 54, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 51, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 55, - "start": 52, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_update_hub_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.update_hub", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.UpdateHub", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "UpdateHub" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.UpdateHubRequest" - }, - { - "name": "hub", - "type": "google.cloud.networkconnectivity_v1alpha1.types.Hub" - }, - { - "name": "update_mask", - "type": "google.protobuf.field_mask_pb2.FieldMask" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "update_hub" - }, - "description": "Sample for UpdateHub", - "file": "networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_UpdateHub_sync", - "segments": [ - { - "end": 54, - "start": 27, - "type": "FULL" - }, - { - "end": 54, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 51, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 55, - "start": 52, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_update_hub_sync.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient", - "shortName": "HubServiceAsyncClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceAsyncClient.update_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "UpdateSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest" - }, - { - "name": "spoke", - "type": "google.cloud.networkconnectivity_v1alpha1.types.Spoke" - }, - { - "name": "update_mask", - "type": "google.protobuf.field_mask_pb2.FieldMask" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation_async.AsyncOperation", - "shortName": "update_spoke" - }, - "description": "Sample for UpdateSpoke", - "file": "networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_async", - "segments": [ - { - "end": 54, - "start": 27, - "type": "FULL" - }, - { - "end": 54, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 51, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 55, - "start": 52, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_update_spoke_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient", - "shortName": "HubServiceClient" - }, - "fullName": "google.cloud.networkconnectivity_v1alpha1.HubServiceClient.update_spoke", - "method": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService.UpdateSpoke", - "service": { - "fullName": "google.cloud.networkconnectivity.v1alpha1.HubService", - "shortName": "HubService" - }, - "shortName": "UpdateSpoke" - }, - "parameters": [ - { - "name": "request", - "type": "google.cloud.networkconnectivity_v1alpha1.types.UpdateSpokeRequest" - }, - { - "name": "spoke", - "type": "google.cloud.networkconnectivity_v1alpha1.types.Spoke" - }, - { - "name": "update_mask", - "type": "google.protobuf.field_mask_pb2.FieldMask" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.api_core.operation.Operation", - "shortName": "update_spoke" - }, - "description": "Sample for UpdateSpoke", - "file": "networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1alpha1_generated_HubService_UpdateSpoke_sync", - "segments": [ - { - "end": 54, - "start": 27, - "type": "FULL" - }, - { - "end": 54, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 51, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 55, - "start": 52, - "type": "RESPONSE_HANDLING" - } - ], - "title": "networkconnectivity_v1alpha1_generated_hub_service_update_spoke_sync.py" - } - ] -} diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/scripts/fixup_networkconnectivity_v1alpha1_keywords.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/scripts/fixup_networkconnectivity_v1alpha1_keywords.py deleted file mode 100644 index 11daf2a1a661..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/scripts/fixup_networkconnectivity_v1alpha1_keywords.py +++ /dev/null @@ -1,185 +0,0 @@ -#! /usr/bin/env python3 -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import argparse -import os -import libcst as cst -import pathlib -import sys -from typing import (Any, Callable, Dict, List, Sequence, Tuple) - - -def partition( - predicate: Callable[[Any], bool], - iterator: Sequence[Any] -) -> Tuple[List[Any], List[Any]]: - """A stable, out-of-place partition.""" - results = ([], []) - - for i in iterator: - results[int(predicate(i))].append(i) - - # Returns trueList, falseList - return results[1], results[0] - - -class networkconnectivityCallTransformer(cst.CSTTransformer): - CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata') - METHOD_TO_PARAMS: Dict[str, Tuple[str]] = { - 'create_hub': ('parent', 'hub', 'hub_id', 'request_id', ), - 'create_spoke': ('parent', 'spoke', 'spoke_id', 'request_id', ), - 'delete_hub': ('name', 'request_id', ), - 'delete_spoke': ('name', 'request_id', ), - 'get_hub': ('name', ), - 'get_spoke': ('name', ), - 'list_hubs': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), - 'list_spokes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), - 'update_hub': ('hub', 'update_mask', 'request_id', ), - 'update_spoke': ('spoke', 'update_mask', 'request_id', ), - } - - def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode: - try: - key = original.func.attr.value - kword_params = self.METHOD_TO_PARAMS[key] - except (AttributeError, KeyError): - # Either not a method from the API or too convoluted to be sure. - return updated - - # If the existing code is valid, keyword args come after positional args. - # Therefore, all positional args must map to the first parameters. - args, kwargs = partition(lambda a: not bool(a.keyword), updated.args) - if any(k.keyword.value == "request" for k in kwargs): - # We've already fixed this file, don't fix it again. - return updated - - kwargs, ctrl_kwargs = partition( - lambda a: a.keyword.value not in self.CTRL_PARAMS, - kwargs - ) - - args, ctrl_args = args[:len(kword_params)], args[len(kword_params):] - ctrl_kwargs.extend(cst.Arg(value=a.value, keyword=cst.Name(value=ctrl)) - for a, ctrl in zip(ctrl_args, self.CTRL_PARAMS)) - - request_arg = cst.Arg( - value=cst.Dict([ - cst.DictElement( - cst.SimpleString("'{}'".format(name)), -cst.Element(value=arg.value) - ) - # Note: the args + kwargs looks silly, but keep in mind that - # the control parameters had to be stripped out, and that - # those could have been passed positionally or by keyword. - for name, arg in zip(kword_params, args + kwargs)]), - keyword=cst.Name("request") - ) - - return updated.with_changes( - args=[request_arg] + ctrl_kwargs - ) - - -def fix_files( - in_dir: pathlib.Path, - out_dir: pathlib.Path, - *, - transformer=networkconnectivityCallTransformer(), -): - """Duplicate the input dir to the output dir, fixing file method calls. - - Preconditions: - * in_dir is a real directory - * out_dir is a real, empty directory - """ - pyfile_gen = ( - pathlib.Path(os.path.join(root, f)) - for root, _, files in os.walk(in_dir) - for f in files if os.path.splitext(f)[1] == ".py" - ) - - for fpath in pyfile_gen: - with open(fpath, 'r') as f: - src = f.read() - - # Parse the code and insert method call fixes. - tree = cst.parse_module(src) - updated = tree.visit(transformer) - - # Create the path and directory structure for the new file. - updated_path = out_dir.joinpath(fpath.relative_to(in_dir)) - updated_path.parent.mkdir(parents=True, exist_ok=True) - - # Generate the updated source file at the corresponding path. - with open(updated_path, 'w') as f: - f.write(updated.code) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser( - description="""Fix up source that uses the networkconnectivity client library. - -The existing sources are NOT overwritten but are copied to output_dir with changes made. - -Note: This tool operates at a best-effort level at converting positional - parameters in client method calls to keyword based parameters. - Cases where it WILL FAIL include - A) * or ** expansion in a method call. - B) Calls via function or method alias (includes free function calls) - C) Indirect or dispatched calls (e.g. the method is looked up dynamically) - - These all constitute false negatives. The tool will also detect false - positives when an API method shares a name with another method. -""") - parser.add_argument( - '-d', - '--input-directory', - required=True, - dest='input_dir', - help='the input directory to walk for python files to fix up', - ) - parser.add_argument( - '-o', - '--output-directory', - required=True, - dest='output_dir', - help='the directory to output files fixed via un-flattening', - ) - args = parser.parse_args() - input_dir = pathlib.Path(args.input_dir) - output_dir = pathlib.Path(args.output_dir) - if not input_dir.is_dir(): - print( - f"input directory '{input_dir}' does not exist or is not a directory", - file=sys.stderr, - ) - sys.exit(-1) - - if not output_dir.is_dir(): - print( - f"output directory '{output_dir}' does not exist or is not a directory", - file=sys.stderr, - ) - sys.exit(-1) - - if os.listdir(output_dir): - print( - f"output directory '{output_dir}' is not empty", - file=sys.stderr, - ) - sys.exit(-1) - - fix_files(input_dir, output_dir) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/setup.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/setup.py deleted file mode 100644 index e29093268a96..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/setup.py +++ /dev/null @@ -1,90 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import io -import os - -import setuptools # type: ignore - -package_root = os.path.abspath(os.path.dirname(__file__)) - -name = 'google-cloud-network-connectivity' - - -description = "Google Cloud Network Connectivity API client library" - -version = {} -with open(os.path.join(package_root, 'google/cloud/networkconnectivity/gapic_version.py')) as fp: - exec(fp.read(), version) -version = version["__version__"] - -if version[0] == "0": - release_status = "Development Status :: 4 - Beta" -else: - release_status = "Development Status :: 5 - Production/Stable" - -dependencies = [ - "google-api-core[grpc] >= 1.34.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", - "proto-plus >= 1.22.0, <2.0.0dev", - "proto-plus >= 1.22.2, <2.0.0dev; python_version>='3.11'", - "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", -] -url = "https://github.com/googleapis/python-network-connectivity" - -package_root = os.path.abspath(os.path.dirname(__file__)) - -readme_filename = os.path.join(package_root, "README.rst") -with io.open(readme_filename, encoding="utf-8") as readme_file: - readme = readme_file.read() - -packages = [ - package - for package in setuptools.PEP420PackageFinder.find() - if package.startswith("google") -] - -namespaces = ["google", "google.cloud"] - -setuptools.setup( - name=name, - version=version, - description=description, - long_description=readme, - author="Google LLC", - author_email="googleapis-packages@google.com", - license="Apache 2.0", - url=url, - classifiers=[ - release_status, - "Intended Audience :: Developers", - "License :: OSI Approved :: Apache Software License", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Operating System :: OS Independent", - "Topic :: Internet", - ], - platforms="Posix; MacOS X; Windows", - packages=packages, - python_requires=">=3.7", - namespace_packages=namespaces, - install_requires=dependencies, - include_package_data=True, - zip_safe=False, -) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.10.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.10.txt deleted file mode 100644 index ed7f9aed2559..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.10.txt +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.11.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.11.txt deleted file mode 100644 index ed7f9aed2559..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.11.txt +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.12.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.12.txt deleted file mode 100644 index ed7f9aed2559..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.12.txt +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.7.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.7.txt deleted file mode 100644 index 6c44adfea7ee..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.7.txt +++ /dev/null @@ -1,9 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.0 -proto-plus==1.22.0 -protobuf==3.19.5 diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.8.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.8.txt deleted file mode 100644 index ed7f9aed2559..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.8.txt +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.9.txt b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.9.txt deleted file mode 100644 index ed7f9aed2559..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/testing/constraints-3.9.txt +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -proto-plus -protobuf diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/__init__.py deleted file mode 100644 index 1b4db446eb8d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ - -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/__init__.py deleted file mode 100644 index 1b4db446eb8d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ - -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/__init__.py deleted file mode 100644 index 1b4db446eb8d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ - -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/__init__.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/__init__.py deleted file mode 100644 index 1b4db446eb8d..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ - -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py b/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py deleted file mode 100644 index f3f82b062425..000000000000 --- a/owl-bot-staging/google-cloud-network-connectivity/v1alpha1/tests/unit/gapic/networkconnectivity_v1alpha1/test_hub_service.py +++ /dev/null @@ -1,4099 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2023 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. -# -import os -# try/except added for compatibility with python < 3.8 -try: - from unittest import mock - from unittest.mock import AsyncMock # pragma: NO COVER -except ImportError: # pragma: NO COVER - import mock - -import grpc -from grpc.experimental import aio -import math -import pytest -from proto.marshal.rules.dates import DurationRule, TimestampRule -from proto.marshal.rules import wrappers - -from google.api_core import client_options -from google.api_core import exceptions as core_exceptions -from google.api_core import future -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers -from google.api_core import grpc_helpers_async -from google.api_core import operation -from google.api_core import operation_async # type: ignore -from google.api_core import operations_v1 -from google.api_core import path_template -from google.auth import credentials as ga_credentials -from google.auth.exceptions import MutualTLSChannelError -from google.cloud.networkconnectivity_v1alpha1.services.hub_service import HubServiceAsyncClient -from google.cloud.networkconnectivity_v1alpha1.services.hub_service import HubServiceClient -from google.cloud.networkconnectivity_v1alpha1.services.hub_service import pagers -from google.cloud.networkconnectivity_v1alpha1.services.hub_service import transports -from google.cloud.networkconnectivity_v1alpha1.types import common -from google.cloud.networkconnectivity_v1alpha1.types import hub -from google.cloud.networkconnectivity_v1alpha1.types import hub as gcn_hub -from google.longrunning import operations_pb2 # type: ignore -from google.oauth2 import service_account -from google.protobuf import empty_pb2 # type: ignore -from google.protobuf import field_mask_pb2 # type: ignore -from google.protobuf import timestamp_pb2 # type: ignore -import google.auth - - -def client_cert_source_callback(): - return b"cert bytes", b"key bytes" - - -# If default endpoint is localhost, then default mtls endpoint will be the same. -# This method modifies the default endpoint so the client can produce a different -# mtls endpoint for endpoint testing purposes. -def modify_default_endpoint(client): - return "foo.googleapis.com" if ("localhost" in client.DEFAULT_ENDPOINT) else client.DEFAULT_ENDPOINT - - -def test__get_default_mtls_endpoint(): - api_endpoint = "example.googleapis.com" - api_mtls_endpoint = "example.mtls.googleapis.com" - sandbox_endpoint = "example.sandbox.googleapis.com" - sandbox_mtls_endpoint = "example.mtls.sandbox.googleapis.com" - non_googleapi = "api.example.com" - - assert HubServiceClient._get_default_mtls_endpoint(None) is None - assert HubServiceClient._get_default_mtls_endpoint(api_endpoint) == api_mtls_endpoint - assert HubServiceClient._get_default_mtls_endpoint(api_mtls_endpoint) == api_mtls_endpoint - assert HubServiceClient._get_default_mtls_endpoint(sandbox_endpoint) == sandbox_mtls_endpoint - assert HubServiceClient._get_default_mtls_endpoint(sandbox_mtls_endpoint) == sandbox_mtls_endpoint - assert HubServiceClient._get_default_mtls_endpoint(non_googleapi) == non_googleapi - - -@pytest.mark.parametrize("client_class,transport_name", [ - (HubServiceClient, "grpc"), - (HubServiceAsyncClient, "grpc_asyncio"), -]) -def test_hub_service_client_from_service_account_info(client_class, transport_name): - creds = ga_credentials.AnonymousCredentials() - with mock.patch.object(service_account.Credentials, 'from_service_account_info') as factory: - factory.return_value = creds - info = {"valid": True} - client = client_class.from_service_account_info(info, transport=transport_name) - assert client.transport._credentials == creds - assert isinstance(client, client_class) - - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:443' - ) - - -@pytest.mark.parametrize("transport_class,transport_name", [ - (transports.HubServiceGrpcTransport, "grpc"), - (transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), -]) -def test_hub_service_client_service_account_always_use_jwt(transport_class, transport_name): - with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: - creds = service_account.Credentials(None, None, None) - transport = transport_class(credentials=creds, always_use_jwt_access=True) - use_jwt.assert_called_once_with(True) - - with mock.patch.object(service_account.Credentials, 'with_always_use_jwt_access', create=True) as use_jwt: - creds = service_account.Credentials(None, None, None) - transport = transport_class(credentials=creds, always_use_jwt_access=False) - use_jwt.assert_not_called() - - -@pytest.mark.parametrize("client_class,transport_name", [ - (HubServiceClient, "grpc"), - (HubServiceAsyncClient, "grpc_asyncio"), -]) -def test_hub_service_client_from_service_account_file(client_class, transport_name): - creds = ga_credentials.AnonymousCredentials() - with mock.patch.object(service_account.Credentials, 'from_service_account_file') as factory: - factory.return_value = creds - client = client_class.from_service_account_file("dummy/file/path.json", transport=transport_name) - assert client.transport._credentials == creds - assert isinstance(client, client_class) - - client = client_class.from_service_account_json("dummy/file/path.json", transport=transport_name) - assert client.transport._credentials == creds - assert isinstance(client, client_class) - - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:443' - ) - - -def test_hub_service_client_get_transport_class(): - transport = HubServiceClient.get_transport_class() - available_transports = [ - transports.HubServiceGrpcTransport, - ] - assert transport in available_transports - - transport = HubServiceClient.get_transport_class("grpc") - assert transport == transports.HubServiceGrpcTransport - - -@pytest.mark.parametrize("client_class,transport_class,transport_name", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc"), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), -]) -@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) -@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) -def test_hub_service_client_client_options(client_class, transport_class, transport_name): - # Check that if channel is provided we won't create a new one. - with mock.patch.object(HubServiceClient, 'get_transport_class') as gtc: - transport = transport_class( - credentials=ga_credentials.AnonymousCredentials() - ) - client = client_class(transport=transport) - gtc.assert_not_called() - - # Check that if channel is provided via str we will create a new one. - with mock.patch.object(HubServiceClient, 'get_transport_class') as gtc: - client = client_class(transport=transport_name) - gtc.assert_called() - - # Check the case api_endpoint is provided. - options = client_options.ClientOptions(api_endpoint="squid.clam.whelk") - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(transport=transport_name, client_options=options) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host="squid.clam.whelk", - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is - # "never". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT is - # "always". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_MTLS_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case api_endpoint is not provided and GOOGLE_API_USE_MTLS_ENDPOINT has - # unsupported value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "Unsupported"}): - with pytest.raises(MutualTLSChannelError): - client = client_class(transport=transport_name) - - # Check the case GOOGLE_API_USE_CLIENT_CERTIFICATE has unsupported value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "Unsupported"}): - with pytest.raises(ValueError): - client = client_class(transport=transport_name) - - # Check the case quota_project_id is provided - options = client_options.ClientOptions(quota_project_id="octopus") - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id="octopus", - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - # Check the case api_endpoint is provided - options = client_options.ClientOptions(api_audience="https://language.googleapis.com") - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience="https://language.googleapis.com" - ) - -@pytest.mark.parametrize("client_class,transport_class,transport_name,use_client_cert_env", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", "true"), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", "true"), - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", "false"), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", "false"), -]) -@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) -@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) -@mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "auto"}) -def test_hub_service_client_mtls_env_auto(client_class, transport_class, transport_name, use_client_cert_env): - # This tests the endpoint autoswitch behavior. Endpoint is autoswitched to the default - # mtls endpoint, if GOOGLE_API_USE_CLIENT_CERTIFICATE is "true" and client cert exists. - - # Check the case client_cert_source is provided. Whether client cert is used depends on - # GOOGLE_API_USE_CLIENT_CERTIFICATE value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): - options = client_options.ClientOptions(client_cert_source=client_cert_source_callback) - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - - if use_client_cert_env == "false": - expected_client_cert_source = None - expected_host = client.DEFAULT_ENDPOINT - else: - expected_client_cert_source = client_cert_source_callback - expected_host = client.DEFAULT_MTLS_ENDPOINT - - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=expected_host, - scopes=None, - client_cert_source_for_mtls=expected_client_cert_source, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case ADC client cert is provided. Whether client cert is used depends on - # GOOGLE_API_USE_CLIENT_CERTIFICATE value. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): - with mock.patch.object(transport_class, '__init__') as patched: - with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): - with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=client_cert_source_callback): - if use_client_cert_env == "false": - expected_host = client.DEFAULT_ENDPOINT - expected_client_cert_source = None - else: - expected_host = client.DEFAULT_MTLS_ENDPOINT - expected_client_cert_source = client_cert_source_callback - - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=expected_host, - scopes=None, - client_cert_source_for_mtls=expected_client_cert_source, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # Check the case client_cert_source and ADC client cert are not provided. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": use_client_cert_env}): - with mock.patch.object(transport_class, '__init__') as patched: - with mock.patch("google.auth.transport.mtls.has_default_client_cert_source", return_value=False): - patched.return_value = None - client = client_class(transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - -@pytest.mark.parametrize("client_class", [ - HubServiceClient, HubServiceAsyncClient -]) -@mock.patch.object(HubServiceClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceClient)) -@mock.patch.object(HubServiceAsyncClient, "DEFAULT_ENDPOINT", modify_default_endpoint(HubServiceAsyncClient)) -def test_hub_service_client_get_mtls_endpoint_and_cert_source(client_class): - mock_client_cert_source = mock.Mock() - - # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "true". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): - mock_api_endpoint = "foo" - options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) - assert api_endpoint == mock_api_endpoint - assert cert_source == mock_client_cert_source - - # Test the case GOOGLE_API_USE_CLIENT_CERTIFICATE is "false". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "false"}): - mock_client_cert_source = mock.Mock() - mock_api_endpoint = "foo" - options = client_options.ClientOptions(client_cert_source=mock_client_cert_source, api_endpoint=mock_api_endpoint) - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source(options) - assert api_endpoint == mock_api_endpoint - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "never". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "never"}): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_ENDPOINT - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "always". - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_MTLS_ENDPOINT": "always"}): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert doesn't exist. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): - with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=False): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_ENDPOINT - assert cert_source is None - - # Test the case GOOGLE_API_USE_MTLS_ENDPOINT is "auto" and default cert exists. - with mock.patch.dict(os.environ, {"GOOGLE_API_USE_CLIENT_CERTIFICATE": "true"}): - with mock.patch('google.auth.transport.mtls.has_default_client_cert_source', return_value=True): - with mock.patch('google.auth.transport.mtls.default_client_cert_source', return_value=mock_client_cert_source): - api_endpoint, cert_source = client_class.get_mtls_endpoint_and_cert_source() - assert api_endpoint == client_class.DEFAULT_MTLS_ENDPOINT - assert cert_source == mock_client_cert_source - - -@pytest.mark.parametrize("client_class,transport_class,transport_name", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc"), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio"), -]) -def test_hub_service_client_client_options_scopes(client_class, transport_class, transport_name): - # Check the case scopes are provided. - options = client_options.ClientOptions( - scopes=["1", "2"], - ) - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=["1", "2"], - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - -@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", grpc_helpers), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), -]) -def test_hub_service_client_client_options_credentials_file(client_class, transport_class, transport_name, grpc_helpers): - # Check the case credentials file is provided. - options = client_options.ClientOptions( - credentials_file="credentials.json" - ) - - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file="credentials.json", - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - -def test_hub_service_client_client_options_from_dict(): - with mock.patch('google.cloud.networkconnectivity_v1alpha1.services.hub_service.transports.HubServiceGrpcTransport.__init__') as grpc_transport: - grpc_transport.return_value = None - client = HubServiceClient( - client_options={'api_endpoint': 'squid.clam.whelk'} - ) - grpc_transport.assert_called_once_with( - credentials=None, - credentials_file=None, - host="squid.clam.whelk", - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - -@pytest.mark.parametrize("client_class,transport_class,transport_name,grpc_helpers", [ - (HubServiceClient, transports.HubServiceGrpcTransport, "grpc", grpc_helpers), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport, "grpc_asyncio", grpc_helpers_async), -]) -def test_hub_service_client_create_channel_credentials_file(client_class, transport_class, transport_name, grpc_helpers): - # Check the case credentials file is provided. - options = client_options.ClientOptions( - credentials_file="credentials.json" - ) - - with mock.patch.object(transport_class, '__init__') as patched: - patched.return_value = None - client = client_class(client_options=options, transport=transport_name) - patched.assert_called_once_with( - credentials=None, - credentials_file="credentials.json", - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) - - # test that the credentials from file are saved and used as the credentials. - with mock.patch.object( - google.auth, "load_credentials_from_file", autospec=True - ) as load_creds, mock.patch.object( - google.auth, "default", autospec=True - ) as adc, mock.patch.object( - grpc_helpers, "create_channel" - ) as create_channel: - creds = ga_credentials.AnonymousCredentials() - file_creds = ga_credentials.AnonymousCredentials() - load_creds.return_value = (file_creds, None) - adc.return_value = (creds, None) - client = client_class(client_options=options, transport=transport_name) - create_channel.assert_called_with( - "networkconnectivity.googleapis.com:443", - credentials=file_creds, - credentials_file=None, - quota_project_id=None, - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - scopes=None, - default_host="networkconnectivity.googleapis.com", - ssl_credentials=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - -@pytest.mark.parametrize("request_type", [ - hub.ListHubsRequest, - dict, -]) -def test_list_hubs(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListHubsResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - ) - response = client.list_hubs(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListHubsRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListHubsPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -def test_list_hubs_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - client.list_hubs() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListHubsRequest() - -@pytest.mark.asyncio -async def test_list_hubs_async(transport: str = 'grpc_asyncio', request_type=hub.ListHubsRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - )) - response = await client.list_hubs(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListHubsRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListHubsAsyncPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -@pytest.mark.asyncio -async def test_list_hubs_async_from_dict(): - await test_list_hubs_async(request_type=dict) - - -def test_list_hubs_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListHubsRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - call.return_value = hub.ListHubsResponse() - client.list_hubs(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_list_hubs_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListHubsRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse()) - await client.list_hubs(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_list_hubs_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListHubsResponse() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.list_hubs( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - - -def test_list_hubs_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.list_hubs( - hub.ListHubsRequest(), - parent='parent_value', - ) - -@pytest.mark.asyncio -async def test_list_hubs_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListHubsResponse() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListHubsResponse()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.list_hubs( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_list_hubs_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.list_hubs( - hub.ListHubsRequest(), - parent='parent_value', - ) - - -def test_list_hubs_pager(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - hub.Hub(), - ], - next_page_token='abc', - ), - hub.ListHubsResponse( - hubs=[], - next_page_token='def', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - ], - next_page_token='ghi', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - ], - ), - RuntimeError, - ) - - metadata = () - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ('parent', ''), - )), - ) - pager = client.list_hubs(request={}) - - assert pager._metadata == metadata - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, hub.Hub) - for i in results) -def test_list_hubs_pages(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - hub.Hub(), - ], - next_page_token='abc', - ), - hub.ListHubsResponse( - hubs=[], - next_page_token='def', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - ], - next_page_token='ghi', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - ], - ), - RuntimeError, - ) - pages = list(client.list_hubs(request={}).pages) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.asyncio -async def test_list_hubs_async_pager(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - hub.Hub(), - ], - next_page_token='abc', - ), - hub.ListHubsResponse( - hubs=[], - next_page_token='def', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - ], - next_page_token='ghi', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - ], - ), - RuntimeError, - ) - async_pager = await client.list_hubs(request={},) - assert async_pager.next_page_token == 'abc' - responses = [] - async for response in async_pager: # pragma: no branch - responses.append(response) - - assert len(responses) == 6 - assert all(isinstance(i, hub.Hub) - for i in responses) - - -@pytest.mark.asyncio -async def test_list_hubs_async_pages(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_hubs), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - hub.Hub(), - ], - next_page_token='abc', - ), - hub.ListHubsResponse( - hubs=[], - next_page_token='def', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - ], - next_page_token='ghi', - ), - hub.ListHubsResponse( - hubs=[ - hub.Hub(), - hub.Hub(), - ], - ), - RuntimeError, - ) - pages = [] - # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` - # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 - async for page_ in ( # pragma: no branch - await client.list_hubs(request={}) - ).pages: - pages.append(page_) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.parametrize("request_type", [ - hub.GetHubRequest, - dict, -]) -def test_get_hub(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Hub( - name='name_value', - description='description_value', - spokes=['spokes_value'], - unique_id='unique_id_value', - state=hub.State.CREATING, - ) - response = client.get_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Hub) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.spokes == ['spokes_value'] - assert response.unique_id == 'unique_id_value' - assert response.state == hub.State.CREATING - - -def test_get_hub_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - client.get_hub() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetHubRequest() - -@pytest.mark.asyncio -async def test_get_hub_async(transport: str = 'grpc_asyncio', request_type=hub.GetHubRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub( - name='name_value', - description='description_value', - spokes=['spokes_value'], - unique_id='unique_id_value', - state=hub.State.CREATING, - )) - response = await client.get_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Hub) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.spokes == ['spokes_value'] - assert response.unique_id == 'unique_id_value' - assert response.state == hub.State.CREATING - - -@pytest.mark.asyncio -async def test_get_hub_async_from_dict(): - await test_get_hub_async(request_type=dict) - - -def test_get_hub_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetHubRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - call.return_value = hub.Hub() - client.get_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_get_hub_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetHubRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub()) - await client.get_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_get_hub_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Hub() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.get_hub( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_get_hub_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.get_hub( - hub.GetHubRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_get_hub_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Hub() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Hub()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.get_hub( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_get_hub_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.get_hub( - hub.GetHubRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - gcn_hub.CreateHubRequest, - dict, -]) -def test_create_hub(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.create_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.CreateHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_create_hub_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - client.create_hub() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.CreateHubRequest() - -@pytest.mark.asyncio -async def test_create_hub_async(transport: str = 'grpc_asyncio', request_type=gcn_hub.CreateHubRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.create_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.CreateHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_create_hub_async_from_dict(): - await test_create_hub_async(request_type=dict) - - -def test_create_hub_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = gcn_hub.CreateHubRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.create_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_create_hub_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = gcn_hub.CreateHubRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.create_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_create_hub_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.create_hub( - parent='parent_value', - hub=gcn_hub.Hub(name='name_value'), - hub_id='hub_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].hub - mock_val = gcn_hub.Hub(name='name_value') - assert arg == mock_val - arg = args[0].hub_id - mock_val = 'hub_id_value' - assert arg == mock_val - - -def test_create_hub_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.create_hub( - gcn_hub.CreateHubRequest(), - parent='parent_value', - hub=gcn_hub.Hub(name='name_value'), - hub_id='hub_id_value', - ) - -@pytest.mark.asyncio -async def test_create_hub_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.create_hub( - parent='parent_value', - hub=gcn_hub.Hub(name='name_value'), - hub_id='hub_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].hub - mock_val = gcn_hub.Hub(name='name_value') - assert arg == mock_val - arg = args[0].hub_id - mock_val = 'hub_id_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_create_hub_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.create_hub( - gcn_hub.CreateHubRequest(), - parent='parent_value', - hub=gcn_hub.Hub(name='name_value'), - hub_id='hub_id_value', - ) - - -@pytest.mark.parametrize("request_type", [ - gcn_hub.UpdateHubRequest, - dict, -]) -def test_update_hub(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.update_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.UpdateHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_update_hub_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - client.update_hub() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.UpdateHubRequest() - -@pytest.mark.asyncio -async def test_update_hub_async(transport: str = 'grpc_asyncio', request_type=gcn_hub.UpdateHubRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.update_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == gcn_hub.UpdateHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_update_hub_async_from_dict(): - await test_update_hub_async(request_type=dict) - - -def test_update_hub_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = gcn_hub.UpdateHubRequest() - - request.hub.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.update_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'hub.name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_update_hub_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = gcn_hub.UpdateHubRequest() - - request.hub.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.update_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'hub.name=name_value', - ) in kw['metadata'] - - -def test_update_hub_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.update_hub( - hub=gcn_hub.Hub(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].hub - mock_val = gcn_hub.Hub(name='name_value') - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) - assert arg == mock_val - - -def test_update_hub_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.update_hub( - gcn_hub.UpdateHubRequest(), - hub=gcn_hub.Hub(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - -@pytest.mark.asyncio -async def test_update_hub_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.update_hub( - hub=gcn_hub.Hub(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].hub - mock_val = gcn_hub.Hub(name='name_value') - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) - assert arg == mock_val - -@pytest.mark.asyncio -async def test_update_hub_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.update_hub( - gcn_hub.UpdateHubRequest(), - hub=gcn_hub.Hub(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - -@pytest.mark.parametrize("request_type", [ - hub.DeleteHubRequest, - dict, -]) -def test_delete_hub(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.delete_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_delete_hub_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - client.delete_hub() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteHubRequest() - -@pytest.mark.asyncio -async def test_delete_hub_async(transport: str = 'grpc_asyncio', request_type=hub.DeleteHubRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.delete_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteHubRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_delete_hub_async_from_dict(): - await test_delete_hub_async(request_type=dict) - - -def test_delete_hub_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.DeleteHubRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.delete_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_delete_hub_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.DeleteHubRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.delete_hub(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_delete_hub_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.delete_hub( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_delete_hub_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.delete_hub( - hub.DeleteHubRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_delete_hub_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_hub), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.delete_hub( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_delete_hub_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.delete_hub( - hub.DeleteHubRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.ListSpokesRequest, - dict, -]) -def test_list_spokes(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListSpokesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - ) - response = client.list_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListSpokesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListSpokesPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -def test_list_spokes_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - client.list_spokes() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListSpokesRequest() - -@pytest.mark.asyncio -async def test_list_spokes_async(transport: str = 'grpc_asyncio', request_type=hub.ListSpokesRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse( - next_page_token='next_page_token_value', - unreachable=['unreachable_value'], - )) - response = await client.list_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListSpokesRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListSpokesAsyncPager) - assert response.next_page_token == 'next_page_token_value' - assert response.unreachable == ['unreachable_value'] - - -@pytest.mark.asyncio -async def test_list_spokes_async_from_dict(): - await test_list_spokes_async(request_type=dict) - - -def test_list_spokes_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListSpokesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - call.return_value = hub.ListSpokesResponse() - client.list_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_list_spokes_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.ListSpokesRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse()) - await client.list_spokes(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_list_spokes_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListSpokesResponse() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.list_spokes( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - - -def test_list_spokes_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.list_spokes( - hub.ListSpokesRequest(), - parent='parent_value', - ) - -@pytest.mark.asyncio -async def test_list_spokes_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.ListSpokesResponse() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.ListSpokesResponse()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.list_spokes( - parent='parent_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_list_spokes_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.list_spokes( - hub.ListSpokesRequest(), - parent='parent_value', - ) - - -def test_list_spokes_pager(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - - metadata = () - metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata(( - ('parent', ''), - )), - ) - pager = client.list_spokes(request={}) - - assert pager._metadata == metadata - - results = list(pager) - assert len(results) == 6 - assert all(isinstance(i, hub.Spoke) - for i in results) -def test_list_spokes_pages(transport_name: str = "grpc"): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials, - transport=transport_name, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__') as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - pages = list(client.list_spokes(request={}).pages) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.asyncio -async def test_list_spokes_async_pager(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - async_pager = await client.list_spokes(request={},) - assert async_pager.next_page_token == 'abc' - responses = [] - async for response in async_pager: # pragma: no branch - responses.append(response) - - assert len(responses) == 6 - assert all(isinstance(i, hub.Spoke) - for i in responses) - - -@pytest.mark.asyncio -async def test_list_spokes_async_pages(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials, - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.list_spokes), - '__call__', new_callable=mock.AsyncMock) as call: - # Set the response to a series of pages. - call.side_effect = ( - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - hub.Spoke(), - ], - next_page_token='abc', - ), - hub.ListSpokesResponse( - spokes=[], - next_page_token='def', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - ], - next_page_token='ghi', - ), - hub.ListSpokesResponse( - spokes=[ - hub.Spoke(), - hub.Spoke(), - ], - ), - RuntimeError, - ) - pages = [] - # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` - # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 - async for page_ in ( # pragma: no branch - await client.list_spokes(request={}) - ).pages: - pages.append(page_) - for page_, token in zip(pages, ['abc','def','ghi', '']): - assert page_.raw_page.next_page_token == token - -@pytest.mark.parametrize("request_type", [ - hub.GetSpokeRequest, - dict, -]) -def test_get_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Spoke( - name='name_value', - description='description_value', - hub='hub_value', - linked_vpn_tunnels=['linked_vpn_tunnels_value'], - linked_interconnect_attachments=['linked_interconnect_attachments_value'], - unique_id='unique_id_value', - state=hub.State.CREATING, - ) - response = client.get_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Spoke) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.hub == 'hub_value' - assert response.linked_vpn_tunnels == ['linked_vpn_tunnels_value'] - assert response.linked_interconnect_attachments == ['linked_interconnect_attachments_value'] - assert response.unique_id == 'unique_id_value' - assert response.state == hub.State.CREATING - - -def test_get_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - client.get_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetSpokeRequest() - -@pytest.mark.asyncio -async def test_get_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.GetSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value =grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke( - name='name_value', - description='description_value', - hub='hub_value', - linked_vpn_tunnels=['linked_vpn_tunnels_value'], - linked_interconnect_attachments=['linked_interconnect_attachments_value'], - unique_id='unique_id_value', - state=hub.State.CREATING, - )) - response = await client.get_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, hub.Spoke) - assert response.name == 'name_value' - assert response.description == 'description_value' - assert response.hub == 'hub_value' - assert response.linked_vpn_tunnels == ['linked_vpn_tunnels_value'] - assert response.linked_interconnect_attachments == ['linked_interconnect_attachments_value'] - assert response.unique_id == 'unique_id_value' - assert response.state == hub.State.CREATING - - -@pytest.mark.asyncio -async def test_get_spoke_async_from_dict(): - await test_get_spoke_async(request_type=dict) - - -def test_get_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - call.return_value = hub.Spoke() - client.get_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_get_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.GetSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) - await client.get_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_get_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Spoke() - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.get_spoke( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_get_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.get_spoke( - hub.GetSpokeRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_get_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.get_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = hub.Spoke() - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.get_spoke( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_get_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.get_spoke( - hub.GetSpokeRequest(), - name='name_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.CreateSpokeRequest, - dict, -]) -def test_create_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.create_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.CreateSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_create_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - client.create_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.CreateSpokeRequest() - -@pytest.mark.asyncio -async def test_create_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.CreateSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.create_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.CreateSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_create_spoke_async_from_dict(): - await test_create_spoke_async(request_type=dict) - - -def test_create_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.CreateSpokeRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.create_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_create_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.CreateSpokeRequest() - - request.parent = 'parent_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.create_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'parent=parent_value', - ) in kw['metadata'] - - -def test_create_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.create_spoke( - parent='parent_value', - spoke=hub.Spoke(name='name_value'), - spoke_id='spoke_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].spoke - mock_val = hub.Spoke(name='name_value') - assert arg == mock_val - arg = args[0].spoke_id - mock_val = 'spoke_id_value' - assert arg == mock_val - - -def test_create_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.create_spoke( - hub.CreateSpokeRequest(), - parent='parent_value', - spoke=hub.Spoke(name='name_value'), - spoke_id='spoke_id_value', - ) - -@pytest.mark.asyncio -async def test_create_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.create_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.create_spoke( - parent='parent_value', - spoke=hub.Spoke(name='name_value'), - spoke_id='spoke_id_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = 'parent_value' - assert arg == mock_val - arg = args[0].spoke - mock_val = hub.Spoke(name='name_value') - assert arg == mock_val - arg = args[0].spoke_id - mock_val = 'spoke_id_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_create_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.create_spoke( - hub.CreateSpokeRequest(), - parent='parent_value', - spoke=hub.Spoke(name='name_value'), - spoke_id='spoke_id_value', - ) - - -@pytest.mark.parametrize("request_type", [ - hub.UpdateSpokeRequest, - dict, -]) -def test_update_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.update_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.UpdateSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_update_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - client.update_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.UpdateSpokeRequest() - -@pytest.mark.asyncio -async def test_update_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.UpdateSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.update_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.UpdateSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_update_spoke_async_from_dict(): - await test_update_spoke_async(request_type=dict) - - -def test_update_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.UpdateSpokeRequest() - - request.spoke.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.update_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'spoke.name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_update_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.UpdateSpokeRequest() - - request.spoke.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.update_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'spoke.name=name_value', - ) in kw['metadata'] - - -def test_update_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.update_spoke( - spoke=hub.Spoke(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].spoke - mock_val = hub.Spoke(name='name_value') - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) - assert arg == mock_val - - -def test_update_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.update_spoke( - hub.UpdateSpokeRequest(), - spoke=hub.Spoke(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - -@pytest.mark.asyncio -async def test_update_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.update_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.update_spoke( - spoke=hub.Spoke(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].spoke - mock_val = hub.Spoke(name='name_value') - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=['paths_value']) - assert arg == mock_val - -@pytest.mark.asyncio -async def test_update_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.update_spoke( - hub.UpdateSpokeRequest(), - spoke=hub.Spoke(name='name_value'), - update_mask=field_mask_pb2.FieldMask(paths=['paths_value']), - ) - - -@pytest.mark.parametrize("request_type", [ - hub.DeleteSpokeRequest, - dict, -]) -def test_delete_spoke(request_type, transport: str = 'grpc'): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/spam') - response = client.delete_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -def test_delete_spoke_empty_call(): - # This test is a coverage failsafe to make sure that totally empty calls, - # i.e. request == None and no flattened fields passed, work. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - client.delete_spoke() - call.assert_called() - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteSpokeRequest() - -@pytest.mark.asyncio -async def test_delete_spoke_async(transport: str = 'grpc_asyncio', request_type=hub.DeleteSpokeRequest): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # Everything is optional in proto3 as far as the runtime is concerned, - # and we are mocking out the actual API, so just send an empty request. - request = request_type() - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - response = await client.delete_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteSpokeRequest() - - # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) - - -@pytest.mark.asyncio -async def test_delete_spoke_async_from_dict(): - await test_delete_spoke_async(request_type=dict) - - -def test_delete_spoke_field_headers(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.DeleteSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - call.return_value = operations_pb2.Operation(name='operations/op') - client.delete_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -@pytest.mark.asyncio -async def test_delete_spoke_field_headers_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Any value that is part of the HTTP/1.1 URI should be sent as - # a field header. Set these to a non-empty value. - request = hub.DeleteSpokeRequest() - - request.name = 'name_value' - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(operations_pb2.Operation(name='operations/op')) - await client.delete_spoke(request) - - # Establish that the underlying gRPC stub method was called. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - assert args[0] == request - - # Establish that the field header was sent. - _, _, kw = call.mock_calls[0] - assert ( - 'x-goog-request-params', - 'name=name_value', - ) in kw['metadata'] - - -def test_delete_spoke_flattened(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - client.delete_spoke( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) == 1 - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - - -def test_delete_spoke_flattened_error(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - client.delete_spoke( - hub.DeleteSpokeRequest(), - name='name_value', - ) - -@pytest.mark.asyncio -async def test_delete_spoke_flattened_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object( - type(client.transport.delete_spoke), - '__call__') as call: - # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name='operations/op') - - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name='operations/spam') - ) - # Call the method with a truthy value for each flattened field, - # using the keyword arguments to the method. - response = await client.delete_spoke( - name='name_value', - ) - - # Establish that the underlying call was made with the expected - # request object values. - assert len(call.mock_calls) - _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = 'name_value' - assert arg == mock_val - -@pytest.mark.asyncio -async def test_delete_spoke_flattened_error_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Attempting to call a method with both a request object and flattened - # fields is an error. - with pytest.raises(ValueError): - await client.delete_spoke( - hub.DeleteSpokeRequest(), - name='name_value', - ) - - -def test_credentials_transport_error(): - # It is an error to provide credentials and a transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) - - # It is an error to provide a credentials file and a transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = HubServiceClient( - client_options={"credentials_file": "credentials.json"}, - transport=transport, - ) - - # It is an error to provide an api_key and a transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - options = client_options.ClientOptions() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = HubServiceClient( - client_options=options, - transport=transport, - ) - - # It is an error to provide an api_key and a credential. - options = mock.Mock() - options.api_key = "api_key" - with pytest.raises(ValueError): - client = HubServiceClient( - client_options=options, - credentials=ga_credentials.AnonymousCredentials() - ) - - # It is an error to provide scopes and a transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - with pytest.raises(ValueError): - client = HubServiceClient( - client_options={"scopes": ["1", "2"]}, - transport=transport, - ) - - -def test_transport_instance(): - # A client may be instantiated with a custom transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - client = HubServiceClient(transport=transport) - assert client.transport is transport - -def test_transport_get_channel(): - # A client may be instantiated with a custom transport instance. - transport = transports.HubServiceGrpcTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - channel = transport.grpc_channel - assert channel - - transport = transports.HubServiceGrpcAsyncIOTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - channel = transport.grpc_channel - assert channel - -@pytest.mark.parametrize("transport_class", [ - transports.HubServiceGrpcTransport, - transports.HubServiceGrpcAsyncIOTransport, -]) -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() - -@pytest.mark.parametrize("transport_name", [ - "grpc", -]) -def test_transport_kind(transport_name): - transport = HubServiceClient.get_transport_class(transport_name)( - credentials=ga_credentials.AnonymousCredentials(), - ) - assert transport.kind == transport_name - -def test_transport_grpc_default(): - # A client should use the gRPC transport by default. - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - ) - assert isinstance( - client.transport, - transports.HubServiceGrpcTransport, - ) - -def test_hub_service_base_transport_error(): - # Passing both a credentials object and credentials_file should raise an error - with pytest.raises(core_exceptions.DuplicateCredentialArgs): - transport = transports.HubServiceTransport( - credentials=ga_credentials.AnonymousCredentials(), - credentials_file="credentials.json" - ) - - -def test_hub_service_base_transport(): - # Instantiate the base transport. - with mock.patch('google.cloud.networkconnectivity_v1alpha1.services.hub_service.transports.HubServiceTransport.__init__') as Transport: - Transport.return_value = None - transport = transports.HubServiceTransport( - credentials=ga_credentials.AnonymousCredentials(), - ) - - # Every method on the transport should just blindly - # raise NotImplementedError. - methods = ( - 'list_hubs', - 'get_hub', - 'create_hub', - 'update_hub', - 'delete_hub', - 'list_spokes', - 'get_spoke', - 'create_spoke', - 'update_spoke', - 'delete_spoke', - ) - for method in methods: - with pytest.raises(NotImplementedError): - getattr(transport, method)(request=object()) - - with pytest.raises(NotImplementedError): - transport.close() - - # Additionally, the LRO client (a property) should - # also raise NotImplementedError - with pytest.raises(NotImplementedError): - transport.operations_client - - # Catch all for all remaining methods and properties - remainder = [ - 'kind', - ] - for r in remainder: - with pytest.raises(NotImplementedError): - getattr(transport, r)() - - -def test_hub_service_base_transport_with_credentials_file(): - # Instantiate the base transport with a credentials file - with mock.patch.object(google.auth, 'load_credentials_from_file', autospec=True) as load_creds, mock.patch('google.cloud.networkconnectivity_v1alpha1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages') as Transport: - Transport.return_value = None - load_creds.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.HubServiceTransport( - credentials_file="credentials.json", - quota_project_id="octopus", - ) - load_creds.assert_called_once_with("credentials.json", - scopes=None, - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - quota_project_id="octopus", - ) - - -def test_hub_service_base_transport_with_adc(): - # Test the default credentials are used if credentials and credentials_file are None. - with mock.patch.object(google.auth, 'default', autospec=True) as adc, mock.patch('google.cloud.networkconnectivity_v1alpha1.services.hub_service.transports.HubServiceTransport._prep_wrapped_messages') as Transport: - Transport.return_value = None - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport = transports.HubServiceTransport() - adc.assert_called_once() - - -def test_hub_service_auth_adc(): - # If no credentials are provided, we should use ADC credentials. - with mock.patch.object(google.auth, 'default', autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - HubServiceClient() - adc.assert_called_once_with( - scopes=None, - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - quota_project_id=None, - ) - - -@pytest.mark.parametrize( - "transport_class", - [ - transports.HubServiceGrpcTransport, - transports.HubServiceGrpcAsyncIOTransport, - ], -) -def test_hub_service_transport_auth_adc(transport_class): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, 'default', autospec=True) as adc: - adc.return_value = (ga_credentials.AnonymousCredentials(), None) - transport_class(quota_project_id="octopus", scopes=["1", "2"]) - adc.assert_called_once_with( - scopes=["1", "2"], - default_scopes=( 'https://www.googleapis.com/auth/cloud-platform',), - quota_project_id="octopus", - ) - - -@pytest.mark.parametrize( - "transport_class", - [ - transports.HubServiceGrpcTransport, - transports.HubServiceGrpcAsyncIOTransport, - ], -) -def test_hub_service_transport_auth_gdch_credentials(transport_class): - host = 'https://language.com' - api_audience_tests = [None, 'https://language2.com'] - api_audience_expect = [host, 'https://language2.com'] - for t, e in zip(api_audience_tests, api_audience_expect): - with mock.patch.object(google.auth, 'default', autospec=True) as adc: - gdch_mock = mock.MagicMock() - type(gdch_mock).with_gdch_audience = mock.PropertyMock(return_value=gdch_mock) - adc.return_value = (gdch_mock, None) - transport_class(host=host, api_audience=t) - gdch_mock.with_gdch_audience.assert_called_once_with( - e - ) - - -@pytest.mark.parametrize( - "transport_class,grpc_helpers", - [ - (transports.HubServiceGrpcTransport, grpc_helpers), - (transports.HubServiceGrpcAsyncIOTransport, grpc_helpers_async) - ], -) -def test_hub_service_transport_create_channel(transport_class, grpc_helpers): - # If credentials and host are not provided, the transport class should use - # ADC credentials. - with mock.patch.object(google.auth, "default", autospec=True) as adc, mock.patch.object( - grpc_helpers, "create_channel", autospec=True - ) as create_channel: - creds = ga_credentials.AnonymousCredentials() - adc.return_value = (creds, None) - transport_class( - quota_project_id="octopus", - scopes=["1", "2"] - ) - - create_channel.assert_called_with( - "networkconnectivity.googleapis.com:443", - credentials=creds, - credentials_file=None, - quota_project_id="octopus", - default_scopes=( - 'https://www.googleapis.com/auth/cloud-platform', -), - scopes=["1", "2"], - default_host="networkconnectivity.googleapis.com", - ssl_credentials=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - -@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) -def test_hub_service_grpc_transport_client_cert_source_for_mtls( - transport_class -): - cred = ga_credentials.AnonymousCredentials() - - # Check ssl_channel_credentials is used if provided. - with mock.patch.object(transport_class, "create_channel") as mock_create_channel: - mock_ssl_channel_creds = mock.Mock() - transport_class( - host="squid.clam.whelk", - credentials=cred, - ssl_channel_credentials=mock_ssl_channel_creds - ) - mock_create_channel.assert_called_once_with( - "squid.clam.whelk:443", - credentials=cred, - credentials_file=None, - scopes=None, - ssl_credentials=mock_ssl_channel_creds, - quota_project_id=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - - # Check if ssl_channel_credentials is not provided, then client_cert_source_for_mtls - # is used. - with mock.patch.object(transport_class, "create_channel", return_value=mock.Mock()): - with mock.patch("grpc.ssl_channel_credentials") as mock_ssl_cred: - transport_class( - credentials=cred, - client_cert_source_for_mtls=client_cert_source_callback - ) - expected_cert, expected_key = client_cert_source_callback() - mock_ssl_cred.assert_called_once_with( - certificate_chain=expected_cert, - private_key=expected_key - ) - - -@pytest.mark.parametrize("transport_name", [ - "grpc", - "grpc_asyncio", -]) -def test_hub_service_host_no_port(transport_name): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com'), - transport=transport_name, - ) - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:443' - ) - -@pytest.mark.parametrize("transport_name", [ - "grpc", - "grpc_asyncio", -]) -def test_hub_service_host_with_port(transport_name): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - client_options=client_options.ClientOptions(api_endpoint='networkconnectivity.googleapis.com:8000'), - transport=transport_name, - ) - assert client.transport._host == ( - 'networkconnectivity.googleapis.com:8000' - ) - -def test_hub_service_grpc_transport_channel(): - channel = grpc.secure_channel('http://localhost/', grpc.local_channel_credentials()) - - # Check that channel is used if provided. - transport = transports.HubServiceGrpcTransport( - host="squid.clam.whelk", - channel=channel, - ) - assert transport.grpc_channel == channel - assert transport._host == "squid.clam.whelk:443" - assert transport._ssl_channel_credentials == None - - -def test_hub_service_grpc_asyncio_transport_channel(): - channel = aio.secure_channel('http://localhost/', grpc.local_channel_credentials()) - - # Check that channel is used if provided. - transport = transports.HubServiceGrpcAsyncIOTransport( - host="squid.clam.whelk", - channel=channel, - ) - assert transport.grpc_channel == channel - assert transport._host == "squid.clam.whelk:443" - assert transport._ssl_channel_credentials == None - - -# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are -# removed from grpc/grpc_asyncio transport constructor. -@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) -def test_hub_service_transport_channel_mtls_with_client_cert_source( - transport_class -): - with mock.patch("grpc.ssl_channel_credentials", autospec=True) as grpc_ssl_channel_cred: - with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: - mock_ssl_cred = mock.Mock() - grpc_ssl_channel_cred.return_value = mock_ssl_cred - - mock_grpc_channel = mock.Mock() - grpc_create_channel.return_value = mock_grpc_channel - - cred = ga_credentials.AnonymousCredentials() - with pytest.warns(DeprecationWarning): - with mock.patch.object(google.auth, 'default') as adc: - adc.return_value = (cred, None) - transport = transport_class( - host="squid.clam.whelk", - api_mtls_endpoint="mtls.squid.clam.whelk", - client_cert_source=client_cert_source_callback, - ) - adc.assert_called_once() - - grpc_ssl_channel_cred.assert_called_once_with( - certificate_chain=b"cert bytes", private_key=b"key bytes" - ) - grpc_create_channel.assert_called_once_with( - "mtls.squid.clam.whelk:443", - credentials=cred, - credentials_file=None, - scopes=None, - ssl_credentials=mock_ssl_cred, - quota_project_id=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - assert transport.grpc_channel == mock_grpc_channel - assert transport._ssl_channel_credentials == mock_ssl_cred - - -# Remove this test when deprecated arguments (api_mtls_endpoint, client_cert_source) are -# removed from grpc/grpc_asyncio transport constructor. -@pytest.mark.parametrize("transport_class", [transports.HubServiceGrpcTransport, transports.HubServiceGrpcAsyncIOTransport]) -def test_hub_service_transport_channel_mtls_with_adc( - transport_class -): - mock_ssl_cred = mock.Mock() - with mock.patch.multiple( - "google.auth.transport.grpc.SslCredentials", - __init__=mock.Mock(return_value=None), - ssl_credentials=mock.PropertyMock(return_value=mock_ssl_cred), - ): - with mock.patch.object(transport_class, "create_channel") as grpc_create_channel: - mock_grpc_channel = mock.Mock() - grpc_create_channel.return_value = mock_grpc_channel - mock_cred = mock.Mock() - - with pytest.warns(DeprecationWarning): - transport = transport_class( - host="squid.clam.whelk", - credentials=mock_cred, - api_mtls_endpoint="mtls.squid.clam.whelk", - client_cert_source=None, - ) - - grpc_create_channel.assert_called_once_with( - "mtls.squid.clam.whelk:443", - credentials=mock_cred, - credentials_file=None, - scopes=None, - ssl_credentials=mock_ssl_cred, - quota_project_id=None, - options=[ - ("grpc.max_send_message_length", -1), - ("grpc.max_receive_message_length", -1), - ], - ) - assert transport.grpc_channel == mock_grpc_channel - - -def test_hub_service_grpc_lro_client(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc', - ) - transport = client.transport - - # Ensure that we have a api-core operations client. - assert isinstance( - transport.operations_client, - operations_v1.OperationsClient, - ) - - # Ensure that subsequent calls to the property send the exact same object. - assert transport.operations_client is transport.operations_client - - -def test_hub_service_grpc_lro_async_client(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport='grpc_asyncio', - ) - transport = client.transport - - # Ensure that we have a api-core operations client. - assert isinstance( - transport.operations_client, - operations_v1.OperationsAsyncClient, - ) - - # Ensure that subsequent calls to the property send the exact same object. - assert transport.operations_client is transport.operations_client - - -def test_hub_path(): - project = "squid" - hub = "clam" - expected = "projects/{project}/locations/global/hubs/{hub}".format(project=project, hub=hub, ) - actual = HubServiceClient.hub_path(project, hub) - assert expected == actual - - -def test_parse_hub_path(): - expected = { - "project": "whelk", - "hub": "octopus", - } - path = HubServiceClient.hub_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_hub_path(path) - assert expected == actual - -def test_instance_path(): - project = "oyster" - zone = "nudibranch" - instance = "cuttlefish" - expected = "projects/{project}/zones/{zone}/instances/{instance}".format(project=project, zone=zone, instance=instance, ) - actual = HubServiceClient.instance_path(project, zone, instance) - assert expected == actual - - -def test_parse_instance_path(): - expected = { - "project": "mussel", - "zone": "winkle", - "instance": "nautilus", - } - path = HubServiceClient.instance_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_instance_path(path) - assert expected == actual - -def test_interconnect_attachment_path(): - project = "scallop" - region = "abalone" - resource_id = "squid" - expected = "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) - actual = HubServiceClient.interconnect_attachment_path(project, region, resource_id) - assert expected == actual - - -def test_parse_interconnect_attachment_path(): - expected = { - "project": "clam", - "region": "whelk", - "resource_id": "octopus", - } - path = HubServiceClient.interconnect_attachment_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_interconnect_attachment_path(path) - assert expected == actual - -def test_spoke_path(): - project = "oyster" - location = "nudibranch" - spoke = "cuttlefish" - expected = "projects/{project}/locations/{location}/spokes/{spoke}".format(project=project, location=location, spoke=spoke, ) - actual = HubServiceClient.spoke_path(project, location, spoke) - assert expected == actual - - -def test_parse_spoke_path(): - expected = { - "project": "mussel", - "location": "winkle", - "spoke": "nautilus", - } - path = HubServiceClient.spoke_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_spoke_path(path) - assert expected == actual - -def test_vpn_tunnel_path(): - project = "scallop" - region = "abalone" - resource_id = "squid" - expected = "projects/{project}/regions/{region}/vpnTunnels/{resource_id}".format(project=project, region=region, resource_id=resource_id, ) - actual = HubServiceClient.vpn_tunnel_path(project, region, resource_id) - assert expected == actual - - -def test_parse_vpn_tunnel_path(): - expected = { - "project": "clam", - "region": "whelk", - "resource_id": "octopus", - } - path = HubServiceClient.vpn_tunnel_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_vpn_tunnel_path(path) - assert expected == actual - -def test_common_billing_account_path(): - billing_account = "oyster" - expected = "billingAccounts/{billing_account}".format(billing_account=billing_account, ) - actual = HubServiceClient.common_billing_account_path(billing_account) - assert expected == actual - - -def test_parse_common_billing_account_path(): - expected = { - "billing_account": "nudibranch", - } - path = HubServiceClient.common_billing_account_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_billing_account_path(path) - assert expected == actual - -def test_common_folder_path(): - folder = "cuttlefish" - expected = "folders/{folder}".format(folder=folder, ) - actual = HubServiceClient.common_folder_path(folder) - assert expected == actual - - -def test_parse_common_folder_path(): - expected = { - "folder": "mussel", - } - path = HubServiceClient.common_folder_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_folder_path(path) - assert expected == actual - -def test_common_organization_path(): - organization = "winkle" - expected = "organizations/{organization}".format(organization=organization, ) - actual = HubServiceClient.common_organization_path(organization) - assert expected == actual - - -def test_parse_common_organization_path(): - expected = { - "organization": "nautilus", - } - path = HubServiceClient.common_organization_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_organization_path(path) - assert expected == actual - -def test_common_project_path(): - project = "scallop" - expected = "projects/{project}".format(project=project, ) - actual = HubServiceClient.common_project_path(project) - assert expected == actual - - -def test_parse_common_project_path(): - expected = { - "project": "abalone", - } - path = HubServiceClient.common_project_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_project_path(path) - assert expected == actual - -def test_common_location_path(): - project = "squid" - location = "clam" - expected = "projects/{project}/locations/{location}".format(project=project, location=location, ) - actual = HubServiceClient.common_location_path(project, location) - assert expected == actual - - -def test_parse_common_location_path(): - expected = { - "project": "whelk", - "location": "octopus", - } - path = HubServiceClient.common_location_path(**expected) - - # Check that the path construction is reversible. - actual = HubServiceClient.parse_common_location_path(path) - assert expected == actual - - -def test_client_with_default_client_info(): - client_info = gapic_v1.client_info.ClientInfo() - - with mock.patch.object(transports.HubServiceTransport, '_prep_wrapped_messages') as prep: - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - client_info=client_info, - ) - prep.assert_called_once_with(client_info) - - with mock.patch.object(transports.HubServiceTransport, '_prep_wrapped_messages') as prep: - transport_class = HubServiceClient.get_transport_class() - transport = transport_class( - credentials=ga_credentials.AnonymousCredentials(), - client_info=client_info, - ) - prep.assert_called_once_with(client_info) - -@pytest.mark.asyncio -async def test_transport_close_async(): - client = HubServiceAsyncClient( - credentials=ga_credentials.AnonymousCredentials(), - transport="grpc_asyncio", - ) - with mock.patch.object(type(getattr(client.transport, "grpc_channel")), "close") as close: - async with client: - close.assert_not_called() - close.assert_called_once() - - -def test_transport_close(): - transports = { - "grpc": "_grpc_channel", - } - - for transport, close_name in transports.items(): - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport - ) - with mock.patch.object(type(getattr(client.transport, close_name)), "close") as close: - with client: - close.assert_not_called() - close.assert_called_once() - -def test_client_ctx(): - transports = [ - 'grpc', - ] - for transport in transports: - client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport - ) - # Test client calls underlying transport. - with mock.patch.object(type(client.transport), "close") as close: - close.assert_not_called() - with client: - pass - close.assert_called() - -@pytest.mark.parametrize("client_class,transport_class", [ - (HubServiceClient, transports.HubServiceGrpcTransport), - (HubServiceAsyncClient, transports.HubServiceGrpcAsyncIOTransport), -]) -def test_api_key_credentials(client_class, transport_class): - with mock.patch.object( - google.auth._default, "get_api_key_credentials", create=True - ) as get_api_key_credentials: - mock_cred = mock.Mock() - get_api_key_credentials.return_value = mock_cred - options = client_options.ClientOptions() - options.api_key = "api_key" - with mock.patch.object(transport_class, "__init__") as patched: - patched.return_value = None - client = client_class(client_options=options) - patched.assert_called_once_with( - credentials=mock_cred, - credentials_file=None, - host=client.DEFAULT_ENDPOINT, - scopes=None, - client_cert_source_for_mtls=None, - quota_project_id=None, - client_info=transports.base.DEFAULT_CLIENT_INFO, - always_use_jwt_access=True, - api_audience=None, - ) diff --git a/packages/google-cloud-network-connectivity/CONTRIBUTING.rst b/packages/google-cloud-network-connectivity/CONTRIBUTING.rst index 3b04ec8f9869..58f485a3b544 100644 --- a/packages/google-cloud-network-connectivity/CONTRIBUTING.rst +++ b/packages/google-cloud-network-connectivity/CONTRIBUTING.rst @@ -143,12 +143,12 @@ Running System Tests $ nox -s system # Run a single system test - $ nox -s system- -- -k + $ nox -s system-3.11 -- -k .. note:: - System tests are only configured to run under Python. + System tests are only configured to run under Python 3.8, 3.9, 3.10 and 3.11. For expediency, we do not run them in older versions of Python 3. This alone will not run the tests. You'll need to change some local diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity/__init__.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity/__init__.py index c5bc0eb1d32a..9adf4a075519 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity/__init__.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity/__init__.py @@ -32,25 +32,48 @@ ) from google.cloud.networkconnectivity_v1.types.common import OperationMetadata from google.cloud.networkconnectivity_v1.types.hub import ( + AcceptHubSpokeRequest, + AcceptHubSpokeResponse, CreateHubRequest, CreateSpokeRequest, DeleteHubRequest, DeleteSpokeRequest, + GetGroupRequest, GetHubRequest, + GetRouteRequest, + GetRouteTableRequest, GetSpokeRequest, + Group, Hub, LinkedInterconnectAttachments, LinkedRouterApplianceInstances, + LinkedVpcNetwork, LinkedVpnTunnels, + ListGroupsRequest, + ListGroupsResponse, + ListHubSpokesRequest, + ListHubSpokesResponse, ListHubsRequest, ListHubsResponse, + ListRoutesRequest, + ListRoutesResponse, + ListRouteTablesRequest, + ListRouteTablesResponse, ListSpokesRequest, ListSpokesResponse, LocationFeature, LocationMetadata, + NextHopVpcNetwork, + RejectHubSpokeRequest, + RejectHubSpokeResponse, + Route, RouterApplianceInstance, + RouteTable, + RouteType, RoutingVPC, Spoke, + SpokeSummary, + SpokeType, State, UpdateHubRequest, UpdateSpokeRequest, @@ -70,27 +93,50 @@ "PolicyBasedRoutingServiceClient", "PolicyBasedRoutingServiceAsyncClient", "OperationMetadata", + "AcceptHubSpokeRequest", + "AcceptHubSpokeResponse", "CreateHubRequest", "CreateSpokeRequest", "DeleteHubRequest", "DeleteSpokeRequest", + "GetGroupRequest", "GetHubRequest", + "GetRouteRequest", + "GetRouteTableRequest", "GetSpokeRequest", + "Group", "Hub", "LinkedInterconnectAttachments", "LinkedRouterApplianceInstances", + "LinkedVpcNetwork", "LinkedVpnTunnels", + "ListGroupsRequest", + "ListGroupsResponse", + "ListHubSpokesRequest", + "ListHubSpokesResponse", "ListHubsRequest", "ListHubsResponse", + "ListRoutesRequest", + "ListRoutesResponse", + "ListRouteTablesRequest", + "ListRouteTablesResponse", "ListSpokesRequest", "ListSpokesResponse", "LocationMetadata", + "NextHopVpcNetwork", + "RejectHubSpokeRequest", + "RejectHubSpokeResponse", + "Route", "RouterApplianceInstance", + "RouteTable", "RoutingVPC", "Spoke", + "SpokeSummary", "UpdateHubRequest", "UpdateSpokeRequest", "LocationFeature", + "RouteType", + "SpokeType", "State", "CreatePolicyBasedRouteRequest", "DeletePolicyBasedRouteRequest", diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity/gapic_version.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity/gapic_version.py index d90ede644a70..360a0d13ebdd 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity/gapic_version.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "2.1.0" # {x-release-please-version} +__version__ = "0.0.0" # {x-release-please-version} diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/__init__.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/__init__.py index 948732aa8bf9..0e72bcf5e984 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/__init__.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/__init__.py @@ -25,25 +25,48 @@ ) from .types.common import OperationMetadata from .types.hub import ( + AcceptHubSpokeRequest, + AcceptHubSpokeResponse, CreateHubRequest, CreateSpokeRequest, DeleteHubRequest, DeleteSpokeRequest, + GetGroupRequest, GetHubRequest, + GetRouteRequest, + GetRouteTableRequest, GetSpokeRequest, + Group, Hub, LinkedInterconnectAttachments, LinkedRouterApplianceInstances, + LinkedVpcNetwork, LinkedVpnTunnels, + ListGroupsRequest, + ListGroupsResponse, + ListHubSpokesRequest, + ListHubSpokesResponse, ListHubsRequest, ListHubsResponse, + ListRoutesRequest, + ListRoutesResponse, + ListRouteTablesRequest, + ListRouteTablesResponse, ListSpokesRequest, ListSpokesResponse, LocationFeature, LocationMetadata, + NextHopVpcNetwork, + RejectHubSpokeRequest, + RejectHubSpokeResponse, + Route, RouterApplianceInstance, + RouteTable, + RouteType, RoutingVPC, Spoke, + SpokeSummary, + SpokeType, State, UpdateHubRequest, UpdateSpokeRequest, @@ -60,34 +83,57 @@ __all__ = ( "HubServiceAsyncClient", "PolicyBasedRoutingServiceAsyncClient", + "AcceptHubSpokeRequest", + "AcceptHubSpokeResponse", "CreateHubRequest", "CreatePolicyBasedRouteRequest", "CreateSpokeRequest", "DeleteHubRequest", "DeletePolicyBasedRouteRequest", "DeleteSpokeRequest", + "GetGroupRequest", "GetHubRequest", "GetPolicyBasedRouteRequest", + "GetRouteRequest", + "GetRouteTableRequest", "GetSpokeRequest", + "Group", "Hub", "HubServiceClient", "LinkedInterconnectAttachments", "LinkedRouterApplianceInstances", + "LinkedVpcNetwork", "LinkedVpnTunnels", + "ListGroupsRequest", + "ListGroupsResponse", + "ListHubSpokesRequest", + "ListHubSpokesResponse", "ListHubsRequest", "ListHubsResponse", "ListPolicyBasedRoutesRequest", "ListPolicyBasedRoutesResponse", + "ListRouteTablesRequest", + "ListRouteTablesResponse", + "ListRoutesRequest", + "ListRoutesResponse", "ListSpokesRequest", "ListSpokesResponse", "LocationFeature", "LocationMetadata", + "NextHopVpcNetwork", "OperationMetadata", "PolicyBasedRoute", "PolicyBasedRoutingServiceClient", + "RejectHubSpokeRequest", + "RejectHubSpokeResponse", + "Route", + "RouteTable", + "RouteType", "RouterApplianceInstance", "RoutingVPC", "Spoke", + "SpokeSummary", + "SpokeType", "State", "UpdateHubRequest", "UpdateSpokeRequest", diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/gapic_metadata.json b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/gapic_metadata.json index 693c92c7ab56..913e687b84bb 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/gapic_metadata.json +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/gapic_metadata.json @@ -10,6 +10,11 @@ "grpc": { "libraryClient": "HubServiceClient", "rpcs": { + "AcceptHubSpoke": { + "methods": [ + "accept_hub_spoke" + ] + }, "CreateHub": { "methods": [ "create_hub" @@ -30,26 +35,66 @@ "delete_spoke" ] }, + "GetGroup": { + "methods": [ + "get_group" + ] + }, "GetHub": { "methods": [ "get_hub" ] }, + "GetRoute": { + "methods": [ + "get_route" + ] + }, + "GetRouteTable": { + "methods": [ + "get_route_table" + ] + }, "GetSpoke": { "methods": [ "get_spoke" ] }, + "ListGroups": { + "methods": [ + "list_groups" + ] + }, + "ListHubSpokes": { + "methods": [ + "list_hub_spokes" + ] + }, "ListHubs": { "methods": [ "list_hubs" ] }, + "ListRouteTables": { + "methods": [ + "list_route_tables" + ] + }, + "ListRoutes": { + "methods": [ + "list_routes" + ] + }, "ListSpokes": { "methods": [ "list_spokes" ] }, + "RejectHubSpoke": { + "methods": [ + "reject_hub_spoke" + ] + }, "UpdateHub": { "methods": [ "update_hub" @@ -65,6 +110,11 @@ "grpc-async": { "libraryClient": "HubServiceAsyncClient", "rpcs": { + "AcceptHubSpoke": { + "methods": [ + "accept_hub_spoke" + ] + }, "CreateHub": { "methods": [ "create_hub" @@ -85,26 +135,66 @@ "delete_spoke" ] }, + "GetGroup": { + "methods": [ + "get_group" + ] + }, "GetHub": { "methods": [ "get_hub" ] }, + "GetRoute": { + "methods": [ + "get_route" + ] + }, + "GetRouteTable": { + "methods": [ + "get_route_table" + ] + }, "GetSpoke": { "methods": [ "get_spoke" ] }, + "ListGroups": { + "methods": [ + "list_groups" + ] + }, + "ListHubSpokes": { + "methods": [ + "list_hub_spokes" + ] + }, "ListHubs": { "methods": [ "list_hubs" ] }, + "ListRouteTables": { + "methods": [ + "list_route_tables" + ] + }, + "ListRoutes": { + "methods": [ + "list_routes" + ] + }, "ListSpokes": { "methods": [ "list_spokes" ] }, + "RejectHubSpoke": { + "methods": [ + "reject_hub_spoke" + ] + }, "UpdateHub": { "methods": [ "update_hub" diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/gapic_version.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/gapic_version.py index d90ede644a70..360a0d13ebdd 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/gapic_version.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "2.1.0" # {x-release-please-version} +__version__ = "0.0.0" # {x-release-please-version} diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py index 2405607efaf4..c9faba996118 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/async_client.py @@ -74,8 +74,12 @@ class HubServiceAsyncClient: DEFAULT_ENDPOINT = HubServiceClient.DEFAULT_ENDPOINT DEFAULT_MTLS_ENDPOINT = HubServiceClient.DEFAULT_MTLS_ENDPOINT + group_path = staticmethod(HubServiceClient.group_path) + parse_group_path = staticmethod(HubServiceClient.parse_group_path) hub_path = staticmethod(HubServiceClient.hub_path) parse_hub_path = staticmethod(HubServiceClient.parse_hub_path) + hub_route_path = staticmethod(HubServiceClient.hub_route_path) + parse_hub_route_path = staticmethod(HubServiceClient.parse_hub_route_path) instance_path = staticmethod(HubServiceClient.instance_path) parse_instance_path = staticmethod(HubServiceClient.parse_instance_path) interconnect_attachment_path = staticmethod( @@ -86,6 +90,8 @@ class HubServiceAsyncClient: ) network_path = staticmethod(HubServiceClient.network_path) parse_network_path = staticmethod(HubServiceClient.parse_network_path) + route_table_path = staticmethod(HubServiceClient.route_table_path) + parse_route_table_path = staticmethod(HubServiceClient.parse_route_table_path) spoke_path = staticmethod(HubServiceClient.spoke_path) parse_spoke_path = staticmethod(HubServiceClient.parse_spoke_path) vpn_tunnel_path = staticmethod(HubServiceClient.vpn_tunnel_path) @@ -412,13 +418,15 @@ async def sample_get_hub(): Returns: google.cloud.networkconnectivity_v1.types.Hub: A Network Connectivity Center hub is - a collection of spokes. A single hub can + a global management resource to which + you attach spokes. A single hub can contain spokes from multiple regions. However, if any of a hub's spokes use - the data transfer feature, the resources - associated with those spokes must all - reside in the same VPC network. Spokes - that do not use data transfer can be + the site-to-site data transfer feature, + the resources associated with those + spokes must all be in the same VPC + network. Spokes that do not use + site-to-site data transfer can be associated with any VPC network in your project. @@ -544,13 +552,14 @@ async def sample_create_hub(): google.api_core.operation_async.AsyncOperation: An object representing a long-running operation. - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a collection of spokes. A single hub - can contain spokes from multiple regions. However, if - any of a hub's spokes use the data transfer feature, + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which + you attach spokes. A single hub can contain spokes + from multiple regions. However, if any of a hub's + spokes use the site-to-site data transfer feature, the resources associated with those spokes must all - reside in the same VPC network. Spokes that do not - use data transfer can be associated with any VPC - network in your project. + be in the same VPC network. Spokes that do not use + site-to-site data transfer can be associated with any + VPC network in your project. """ # Create or coerce a protobuf request object. @@ -682,13 +691,14 @@ async def sample_update_hub(): google.api_core.operation_async.AsyncOperation: An object representing a long-running operation. - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a collection of spokes. A single hub - can contain spokes from multiple regions. However, if - any of a hub's spokes use the data transfer feature, + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which + you attach spokes. A single hub can contain spokes + from multiple regions. However, if any of a hub's + spokes use the site-to-site data transfer feature, the resources associated with those spokes must all - reside in the same VPC network. Spokes that do not - use data transfer can be associated with any VPC - network in your project. + be in the same VPC network. Spokes that do not use + site-to-site data transfer can be associated with any + VPC network in your project. """ # Create or coerce a protobuf request object. @@ -867,6 +877,122 @@ async def sample_delete_hub(): # Done; return the response. return response + async def list_hub_spokes( + self, + request: Optional[Union[hub.ListHubSpokesRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListHubSpokesAsyncPager: + r"""Lists the Network Connectivity Center spokes + associated with a specified hub and location. The list + includes both spokes that are attached to the hub and + spokes that have been proposed but not yet accepted. + + .. 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 networkconnectivity_v1 + + async def sample_list_hub_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubSpokesRequest( + name="name_value", + ) + + # Make the request + page_result = client.list_hub_spokes(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest, dict]]): + The request object. The request for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + name (:class:`str`): + Required. The name of the hub. + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesAsyncPager: + The response for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + + 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([name]) + 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." + ) + + request = hub.ListHubSpokesRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_hub_spokes, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListHubSpokesAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + async def list_spokes( self, request: Optional[Union[hub.ListSpokesRequest, dict]] = None, @@ -1038,9 +1164,8 @@ async def sample_get_spoke(): Returns: google.cloud.networkconnectivity_v1.types.Spoke: - A Network Connectivity Center spoke represents a connection between your - Google Cloud network resources and a non-Google-Cloud - network. + A Network Connectivity Center spoke represents one or more network + connectivity resources. When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the @@ -1049,6 +1174,7 @@ async def sample_get_spoke(): - linked_vpn_tunnels - linked_interconnect_attachments - linked_router_appliance_instances + - linked_vpc_network """ # Create or coerce a protobuf request object. @@ -1170,9 +1296,8 @@ async def sample_create_spoke(): google.api_core.operation_async.AsyncOperation: An object representing a long-running operation. - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents a connection between your - Google Cloud network resources and a non-Google-Cloud - network. + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network + connectivity resources. When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the @@ -1181,6 +1306,7 @@ async def sample_create_spoke(): - linked_vpn_tunnels - linked_interconnect_attachments - linked_router_appliance_instances + - linked_vpc_network """ # Create or coerce a protobuf request object. @@ -1312,9 +1438,8 @@ async def sample_update_spoke(): google.api_core.operation_async.AsyncOperation: An object representing a long-running operation. - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents a connection between your - Google Cloud network resources and a non-Google-Cloud - network. + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network + connectivity resources. When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the @@ -1323,6 +1448,7 @@ async def sample_update_spoke(): - linked_vpn_tunnels - linked_interconnect_attachments - linked_router_appliance_instances + - linked_vpc_network """ # Create or coerce a protobuf request object. @@ -1379,16 +1505,20 @@ async def sample_update_spoke(): # Done; return the response. return response - async def delete_spoke( + async def reject_hub_spoke( self, - request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, + request: Optional[Union[hub.RejectHubSpokeRequest, dict]] = None, *, name: Optional[str] = None, + spoke_uri: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> operation_async.AsyncOperation: - r"""Deletes a Network Connectivity Center spoke. + r"""Rejects a Network Connectivity Center spoke from being attached + to a hub. If the spoke was previously in the ``ACTIVE`` state, + it transitions to the ``INACTIVE`` state and is no longer able + to connect to other spokes that are attached to the hub. .. code-block:: python @@ -1401,17 +1531,18 @@ async def delete_spoke( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import networkconnectivity_v1 - async def sample_delete_spoke(): + async def sample_reject_hub_spoke(): # Create a client client = networkconnectivity_v1.HubServiceAsyncClient() # Initialize request argument(s) - request = networkconnectivity_v1.DeleteSpokeRequest( + request = networkconnectivity_v1.RejectHubSpokeRequest( name="name_value", + spoke_uri="spoke_uri_value", ) # Make the request - operation = client.delete_spoke(request=request) + operation = client.reject_hub_spoke(request=request) print("Waiting for operation to complete...") @@ -1421,16 +1552,23 @@ async def sample_delete_spoke(): print(response) Args: - request (Optional[Union[google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest, dict]]): + request (Optional[Union[google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest, dict]]): The request object. The request for - [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. name (:class:`str`): - Required. The name of the spoke to - delete. + Required. The name of the hub from + which to reject the spoke. This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. + spoke_uri (:class:`str`): + Required. The URI of the spoke to + reject from the hub. + + This corresponds to the ``spoke_uri`` 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. @@ -1441,40 +1579,162 @@ async def sample_delete_spoke(): google.api_core.operation_async.AsyncOperation: An object representing a long-running operation. - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.RejectHubSpokeResponse` The response for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); + """ + # 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([name, spoke_uri]) + 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." + ) - } + request = hub.RejectHubSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + if spoke_uri is not None: + request.spoke_uri = spoke_uri + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.reject_hub_spoke, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + hub.RejectHubSpokeResponse, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def accept_hub_spoke( + self, + request: Optional[Union[hub.AcceptHubSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + spoke_uri: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Accepts a proposal to attach a Network Connectivity + Center spoke to a hub. + + .. 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 networkconnectivity_v1 + + async def sample_accept_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.AcceptHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.accept_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest, dict]]): + The request object. The request for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + name (:class:`str`): + Required. The name of the hub into + which to accept the spoke. + + This corresponds to the ``name`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_uri (:class:`str`): + Required. The URI of the spoke to + accept into the hub. + + This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.AcceptHubSpokeResponse` The response for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. """ # 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([name]) + has_flattened_params = any([name, spoke_uri]) 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." ) - request = hub.DeleteSpokeRequest(request) + request = hub.AcceptHubSpokeRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if name is not None: request.name = name + if spoke_uri is not None: + request.spoke_uri = spoke_uri # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. rpc = gapic_v1.method_async.wrap_method( - self._client._transport.delete_spoke, - default_timeout=60.0, + self._client._transport.accept_hub_spoke, + default_timeout=None, client_info=DEFAULT_CLIENT_INFO, ) @@ -1496,13 +1756,790 @@ async def sample_delete_spoke(): response = operation_async.from_gapic( response, self._client._transport.operations_client, - empty_pb2.Empty, + hub.AcceptHubSpokeResponse, metadata_type=common.OperationMetadata, ) # Done; return the response. return response + async def delete_spoke( + self, + request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation_async.AsyncOperation: + r"""Deletes a Network Connectivity Center spoke. + + .. 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 networkconnectivity_v1 + + async def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = (await operation).result() + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest, dict]]): + The request object. The request for + [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. + name (:class:`str`): + Required. The name of the spoke to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation_async.AsyncOperation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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." + ) + + request = hub.DeleteSpokeRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.delete_spoke, + default_timeout=60.0, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation_async.from_gapic( + response, + self._client._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + async def get_route_table( + self, + request: Optional[Union[hub.GetRouteTableRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.RouteTable: + r"""Gets details about a Network Connectivity Center + route table. + + .. 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 networkconnectivity_v1 + + async def sample_get_route_table(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteTableRequest( + name="name_value", + ) + + # Make the request + response = await client.get_route_table(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetRouteTableRequest, dict]]): + The request object. The request for + [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. + name (:class:`str`): + Required. The name of the route table + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.RouteTable: + + """ + # 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([name]) + 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." + ) + + request = hub.GetRouteTableRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_route_table, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def get_route( + self, + request: Optional[Union[hub.GetRouteRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Route: + r"""Gets details about the specified route. + + .. 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 networkconnectivity_v1 + + async def sample_get_route(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteRequest( + name="name_value", + ) + + # Make the request + response = await client.get_route(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetRouteRequest, dict]]): + The request object. The request for + [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. + name (:class:`str`): + Required. The name of the route + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Route: + A route defines a path from VM + instances within a spoke to a specific + destination resource. Only VPC spokes + have routes. + + """ + # 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([name]) + 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." + ) + + request = hub.GetRouteRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_route, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def list_routes( + self, + request: Optional[Union[hub.ListRoutesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListRoutesAsyncPager: + r"""Lists routes in a given 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 networkconnectivity_v1 + + async def sample_list_routes(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_routes(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListRoutesRequest, dict]]): + The request object. Request for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + parent (:class:`str`): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesAsyncPager: + Response for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + + 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([parent]) + 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." + ) + + request = hub.ListRoutesRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_routes, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListRoutesAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def list_route_tables( + self, + request: Optional[Union[hub.ListRouteTablesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListRouteTablesAsyncPager: + r"""Lists route tables in a given 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 networkconnectivity_v1 + + async def sample_list_route_tables(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRouteTablesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_route_tables(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest, dict]]): + The request object. Request for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + parent (:class:`str`): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesAsyncPager: + Response for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + + 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([parent]) + 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." + ) + + request = hub.ListRouteTablesRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_route_tables, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListRouteTablesAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def get_group( + self, + request: Optional[Union[hub.GetGroupRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Group: + r"""Gets details about a Network Connectivity Center + group. + + .. 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 networkconnectivity_v1 + + async def sample_get_group(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetGroupRequest( + name="name_value", + ) + + # Make the request + response = await client.get_group(request=request) + + # Handle the response + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.GetGroupRequest, dict]]): + The request object. The request for + [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. + name (:class:`str`): + Required. The name of the route table + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Group: + A group represents a subset of spokes + attached to a hub. + + """ + # 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([name]) + 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." + ) + + request = hub.GetGroupRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.get_group, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + async def list_groups( + self, + request: Optional[Union[hub.ListGroupsRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListGroupsAsyncPager: + r"""Lists groups in a given hub. + + .. 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 networkconnectivity_v1 + + async def sample_list_groups(): + # Create a client + client = networkconnectivity_v1.HubServiceAsyncClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListGroupsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_groups(request=request) + + # Handle the response + async for response in page_result: + print(response) + + Args: + request (Optional[Union[google.cloud.networkconnectivity_v1.types.ListGroupsRequest, dict]]): + The request object. Request for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + parent (:class:`str`): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsAsyncPager: + Response for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + + 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([parent]) + 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." + ) + + request = hub.ListGroupsRequest(request) + + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = gapic_v1.method_async.wrap_method( + self._client._transport.list_groups, + default_timeout=None, + client_info=DEFAULT_CLIENT_INFO, + ) + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)), + ) + + # Send the request. + response = await rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # This method is paged; wrap the response in a pager, which provides + # an `__aiter__` convenience method. + response = pagers.ListGroupsAsyncPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + async def list_operations( self, request: Optional[operations_pb2.ListOperationsRequest] = None, diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/client.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/client.py index f3449ed811a4..3b39a440ee47 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/client.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/client.py @@ -189,6 +189,28 @@ def transport(self) -> HubServiceTransport: """ return self._transport + @staticmethod + def group_path( + project: str, + hub: str, + group: str, + ) -> str: + """Returns a fully-qualified group string.""" + return "projects/{project}/locations/global/hubs/{hub}/groups/{group}".format( + project=project, + hub=hub, + group=group, + ) + + @staticmethod + def parse_group_path(path: str) -> Dict[str, str]: + """Parses a group path into its component segments.""" + m = re.match( + r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)/groups/(?P.+?)$", + path, + ) + return m.groupdict() if m else {} + @staticmethod def hub_path( project: str, @@ -208,6 +230,30 @@ def parse_hub_path(path: str) -> Dict[str, str]: ) return m.groupdict() if m else {} + @staticmethod + def hub_route_path( + project: str, + hub: str, + route_table: str, + route: str, + ) -> str: + """Returns a fully-qualified hub_route string.""" + return "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}/routes/{route}".format( + project=project, + hub=hub, + route_table=route_table, + route=route, + ) + + @staticmethod + def parse_hub_route_path(path: str) -> Dict[str, str]: + """Parses a hub_route path into its component segments.""" + m = re.match( + r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)/routeTables/(?P.+?)/routes/(?P.+?)$", + path, + ) + return m.groupdict() if m else {} + @staticmethod def instance_path( project: str, @@ -271,6 +317,28 @@ def parse_network_path(path: str) -> Dict[str, str]: ) return m.groupdict() if m else {} + @staticmethod + def route_table_path( + project: str, + hub: str, + route_table: str, + ) -> str: + """Returns a fully-qualified route_table string.""" + return "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}".format( + project=project, + hub=hub, + route_table=route_table, + ) + + @staticmethod + def parse_route_table_path(path: str) -> Dict[str, str]: + """Parses a route_table path into its component segments.""" + m = re.match( + r"^projects/(?P.+?)/locations/global/hubs/(?P.+?)/routeTables/(?P.+?)$", + path, + ) + return m.groupdict() if m else {} + @staticmethod def spoke_path( project: str, @@ -733,13 +801,15 @@ def sample_get_hub(): Returns: google.cloud.networkconnectivity_v1.types.Hub: A Network Connectivity Center hub is - a collection of spokes. A single hub can + a global management resource to which + you attach spokes. A single hub can contain spokes from multiple regions. However, if any of a hub's spokes use - the data transfer feature, the resources - associated with those spokes must all - reside in the same VPC network. Spokes - that do not use data transfer can be + the site-to-site data transfer feature, + the resources associated with those + spokes must all be in the same VPC + network. Spokes that do not use + site-to-site data transfer can be associated with any VPC network in your project. @@ -865,13 +935,14 @@ def sample_create_hub(): google.api_core.operation.Operation: An object representing a long-running operation. - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a collection of spokes. A single hub - can contain spokes from multiple regions. However, if - any of a hub's spokes use the data transfer feature, + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which + you attach spokes. A single hub can contain spokes + from multiple regions. However, if any of a hub's + spokes use the site-to-site data transfer feature, the resources associated with those spokes must all - reside in the same VPC network. Spokes that do not - use data transfer can be associated with any VPC - network in your project. + be in the same VPC network. Spokes that do not use + site-to-site data transfer can be associated with any + VPC network in your project. """ # Create or coerce a protobuf request object. @@ -1003,13 +1074,14 @@ def sample_update_hub(): google.api_core.operation.Operation: An object representing a long-running operation. - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a collection of spokes. A single hub - can contain spokes from multiple regions. However, if - any of a hub's spokes use the data transfer feature, + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Hub` A Network Connectivity Center hub is a global management resource to which + you attach spokes. A single hub can contain spokes + from multiple regions. However, if any of a hub's + spokes use the site-to-site data transfer feature, the resources associated with those spokes must all - reside in the same VPC network. Spokes that do not - use data transfer can be associated with any VPC - network in your project. + be in the same VPC network. Spokes that do not use + site-to-site data transfer can be associated with any + VPC network in your project. """ # Create or coerce a protobuf request object. @@ -1188,6 +1260,122 @@ def sample_delete_hub(): # Done; return the response. return response + def list_hub_spokes( + self, + request: Optional[Union[hub.ListHubSpokesRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListHubSpokesPager: + r"""Lists the Network Connectivity Center spokes + associated with a specified hub and location. The list + includes both spokes that are attached to the hub and + spokes that have been proposed but not yet accepted. + + .. 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 networkconnectivity_v1 + + def sample_list_hub_spokes(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListHubSpokesRequest( + name="name_value", + ) + + # Make the request + page_result = client.list_hub_spokes(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest, dict]): + The request object. The request for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + name (str): + Required. The name of the hub. + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesPager: + The response for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + + 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([name]) + 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." + ) + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListHubSpokesRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListHubSpokesRequest): + request = hub.ListHubSpokesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_hub_spokes] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # 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.ListHubSpokesPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + def list_spokes( self, request: Optional[Union[hub.ListSpokesRequest, dict]] = None, @@ -1359,9 +1547,8 @@ def sample_get_spoke(): Returns: google.cloud.networkconnectivity_v1.types.Spoke: - A Network Connectivity Center spoke represents a connection between your - Google Cloud network resources and a non-Google-Cloud - network. + A Network Connectivity Center spoke represents one or more network + connectivity resources. When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the @@ -1370,6 +1557,7 @@ def sample_get_spoke(): - linked_vpn_tunnels - linked_interconnect_attachments - linked_router_appliance_instances + - linked_vpc_network """ # Create or coerce a protobuf request object. @@ -1491,9 +1679,8 @@ def sample_create_spoke(): google.api_core.operation.Operation: An object representing a long-running operation. - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents a connection between your - Google Cloud network resources and a non-Google-Cloud - network. + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network + connectivity resources. When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the @@ -1502,6 +1689,7 @@ def sample_create_spoke(): - linked_vpn_tunnels - linked_interconnect_attachments - linked_router_appliance_instances + - linked_vpc_network """ # Create or coerce a protobuf request object. @@ -1633,9 +1821,8 @@ def sample_update_spoke(): google.api_core.operation.Operation: An object representing a long-running operation. - The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents a connection between your - Google Cloud network resources and a non-Google-Cloud - network. + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.Spoke` A Network Connectivity Center spoke represents one or more network + connectivity resources. When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the @@ -1644,6 +1831,7 @@ def sample_update_spoke(): - linked_vpn_tunnels - linked_interconnect_attachments - linked_router_appliance_instances + - linked_vpc_network """ # Create or coerce a protobuf request object. @@ -1700,16 +1888,20 @@ def sample_update_spoke(): # Done; return the response. return response - def delete_spoke( + def reject_hub_spoke( self, - request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, + request: Optional[Union[hub.RejectHubSpokeRequest, dict]] = None, *, name: Optional[str] = None, + spoke_uri: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> operation.Operation: - r"""Deletes a Network Connectivity Center spoke. + r"""Rejects a Network Connectivity Center spoke from being attached + to a hub. If the spoke was previously in the ``ACTIVE`` state, + it transitions to the ``INACTIVE`` state and is no longer able + to connect to other spokes that are attached to the hub. .. code-block:: python @@ -1722,17 +1914,18 @@ def delete_spoke( # https://googleapis.dev/python/google-api-core/latest/client_options.html from google.cloud import networkconnectivity_v1 - def sample_delete_spoke(): + def sample_reject_hub_spoke(): # Create a client client = networkconnectivity_v1.HubServiceClient() # Initialize request argument(s) - request = networkconnectivity_v1.DeleteSpokeRequest( + request = networkconnectivity_v1.RejectHubSpokeRequest( name="name_value", + spoke_uri="spoke_uri_value", ) # Make the request - operation = client.delete_spoke(request=request) + operation = client.reject_hub_spoke(request=request) print("Waiting for operation to complete...") @@ -1742,16 +1935,23 @@ def sample_delete_spoke(): print(response) Args: - request (Union[google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest, dict]): + request (Union[google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest, dict]): The request object. The request for - [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. name (str): - Required. The name of the spoke to - delete. + Required. The name of the hub from + which to reject the spoke. This corresponds to the ``name`` field on the ``request`` instance; if ``request`` is provided, this should not be set. + spoke_uri (str): + Required. The URI of the spoke to + reject from the hub. + + This corresponds to the ``spoke_uri`` 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. @@ -1762,22 +1962,14 @@ def sample_delete_spoke(): google.api_core.operation.Operation: An object representing a long-running operation. - The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated - empty messages in your APIs. A typical example is to - use it as the request or the response type of an API - method. For instance: - - service Foo { - rpc Bar(google.protobuf.Empty) returns - (google.protobuf.Empty); - - } + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.RejectHubSpokeResponse` The response for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. """ # 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([name]) + has_flattened_params = any([name, spoke_uri]) if request is not None and has_flattened_params: raise ValueError( "If the `request` argument is set, then none of " @@ -1785,19 +1977,21 @@ def sample_delete_spoke(): ) # Minor optimization to avoid making a copy if the user passes - # in a hub.DeleteSpokeRequest. + # in a hub.RejectHubSpokeRequest. # There's no risk of modifying the input as we've already verified # there are no flattened fields. - if not isinstance(request, hub.DeleteSpokeRequest): - request = hub.DeleteSpokeRequest(request) + if not isinstance(request, hub.RejectHubSpokeRequest): + request = hub.RejectHubSpokeRequest(request) # If we have keyword arguments corresponding to fields on the # request, apply these. if name is not None: request.name = name + if spoke_uri is not None: + request.spoke_uri = spoke_uri # Wrap the RPC method; this adds retry and timeout information, # and friendly error handling. - rpc = self._transport._wrapped_methods[self._transport.delete_spoke] + rpc = self._transport._wrapped_methods[self._transport.reject_hub_spoke] # Certain fields should be provided within the metadata header; # add these here. @@ -1817,13 +2011,918 @@ def sample_delete_spoke(): response = operation.from_gapic( response, self._transport.operations_client, - empty_pb2.Empty, + hub.RejectHubSpokeResponse, metadata_type=common.OperationMetadata, ) # Done; return the response. return response + def accept_hub_spoke( + self, + request: Optional[Union[hub.AcceptHubSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + spoke_uri: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Accepts a proposal to attach a Network Connectivity + Center spoke to a hub. + + .. 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 networkconnectivity_v1 + + def sample_accept_hub_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.AcceptHubSpokeRequest( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Make the request + operation = client.accept_hub_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest, dict]): + The request object. The request for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + name (str): + Required. The name of the hub into + which to accept the spoke. + + This corresponds to the ``name`` field + on the ``request`` instance; if ``request`` is provided, this + should not be set. + spoke_uri (str): + Required. The URI of the spoke to + accept into the hub. + + This corresponds to the ``spoke_uri`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.cloud.networkconnectivity_v1.types.AcceptHubSpokeResponse` The response for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + + """ + # 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([name, spoke_uri]) + 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." + ) + + # Minor optimization to avoid making a copy if the user passes + # in a hub.AcceptHubSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.AcceptHubSpokeRequest): + request = hub.AcceptHubSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + if spoke_uri is not None: + request.spoke_uri = spoke_uri + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.accept_hub_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + hub.AcceptHubSpokeResponse, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def delete_spoke( + self, + request: Optional[Union[hub.DeleteSpokeRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> operation.Operation: + r"""Deletes a Network Connectivity Center spoke. + + .. 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 networkconnectivity_v1 + + def sample_delete_spoke(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.DeleteSpokeRequest( + name="name_value", + ) + + # Make the request + operation = client.delete_spoke(request=request) + + print("Waiting for operation to complete...") + + response = operation.result() + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.DeleteSpokeRequest, dict]): + The request object. The request for + [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. + name (str): + Required. The name of the spoke to + delete. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.api_core.operation.Operation: + An object representing a long-running operation. + + The result type for the operation will be :class:`google.protobuf.empty_pb2.Empty` A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to + use it as the request or the response type of an API + method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns + (google.protobuf.Empty); + + } + + """ + # 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([name]) + 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." + ) + + # Minor optimization to avoid making a copy if the user passes + # in a hub.DeleteSpokeRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.DeleteSpokeRequest): + request = hub.DeleteSpokeRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.delete_spoke] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Wrap the response in an operation future. + response = operation.from_gapic( + response, + self._transport.operations_client, + empty_pb2.Empty, + metadata_type=common.OperationMetadata, + ) + + # Done; return the response. + return response + + def get_route_table( + self, + request: Optional[Union[hub.GetRouteTableRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.RouteTable: + r"""Gets details about a Network Connectivity Center + route table. + + .. 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 networkconnectivity_v1 + + def sample_get_route_table(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteTableRequest( + name="name_value", + ) + + # Make the request + response = client.get_route_table(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.GetRouteTableRequest, dict]): + The request object. The request for + [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. + name (str): + Required. The name of the route table + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.RouteTable: + + """ + # 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([name]) + 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." + ) + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetRouteTableRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetRouteTableRequest): + request = hub.GetRouteTableRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_route_table] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_route( + self, + request: Optional[Union[hub.GetRouteRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Route: + r"""Gets details about the specified route. + + .. 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 networkconnectivity_v1 + + def sample_get_route(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetRouteRequest( + name="name_value", + ) + + # Make the request + response = client.get_route(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.GetRouteRequest, dict]): + The request object. The request for + [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. + name (str): + Required. The name of the route + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Route: + A route defines a path from VM + instances within a spoke to a specific + destination resource. Only VPC spokes + have routes. + + """ + # 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([name]) + 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." + ) + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetRouteRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetRouteRequest): + request = hub.GetRouteRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_route] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def list_routes( + self, + request: Optional[Union[hub.ListRoutesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListRoutesPager: + r"""Lists routes in a given 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 networkconnectivity_v1 + + def sample_list_routes(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRoutesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_routes(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListRoutesRequest, dict]): + The request object. Request for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + parent (str): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesPager: + Response for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + + 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([parent]) + 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." + ) + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListRoutesRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListRoutesRequest): + request = hub.ListRoutesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_routes] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)), + ) + + # 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.ListRoutesPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def list_route_tables( + self, + request: Optional[Union[hub.ListRouteTablesRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListRouteTablesPager: + r"""Lists route tables in a given 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 networkconnectivity_v1 + + def sample_list_route_tables(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListRouteTablesRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_route_tables(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest, dict]): + The request object. Request for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + parent (str): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesPager: + Response for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + + 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([parent]) + 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." + ) + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListRouteTablesRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListRouteTablesRequest): + request = hub.ListRouteTablesRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_route_tables] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)), + ) + + # 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.ListRouteTablesPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + + def get_group( + self, + request: Optional[Union[hub.GetGroupRequest, dict]] = None, + *, + name: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> hub.Group: + r"""Gets details about a Network Connectivity Center + group. + + .. 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 networkconnectivity_v1 + + def sample_get_group(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.GetGroupRequest( + name="name_value", + ) + + # Make the request + response = client.get_group(request=request) + + # Handle the response + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.GetGroupRequest, dict]): + The request object. The request for + [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. + name (str): + Required. The name of the route table + resource. + + This corresponds to the ``name`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.types.Group: + A group represents a subset of spokes + attached to a hub. + + """ + # 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([name]) + 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." + ) + + # Minor optimization to avoid making a copy if the user passes + # in a hub.GetGroupRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.GetGroupRequest): + request = hub.GetGroupRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if name is not None: + request.name = name + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.get_group] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("name", request.name),)), + ) + + # Send the request. + response = rpc( + request, + retry=retry, + timeout=timeout, + metadata=metadata, + ) + + # Done; return the response. + return response + + def list_groups( + self, + request: Optional[Union[hub.ListGroupsRequest, dict]] = None, + *, + parent: Optional[str] = None, + retry: OptionalRetry = gapic_v1.method.DEFAULT, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, + metadata: Sequence[Tuple[str, str]] = (), + ) -> pagers.ListGroupsPager: + r"""Lists groups in a given hub. + + .. 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 networkconnectivity_v1 + + def sample_list_groups(): + # Create a client + client = networkconnectivity_v1.HubServiceClient() + + # Initialize request argument(s) + request = networkconnectivity_v1.ListGroupsRequest( + parent="parent_value", + ) + + # Make the request + page_result = client.list_groups(request=request) + + # Handle the response + for response in page_result: + print(response) + + Args: + request (Union[google.cloud.networkconnectivity_v1.types.ListGroupsRequest, dict]): + The request object. Request for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + parent (str): + Required. The parent resource's name. + This corresponds to the ``parent`` 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, str]]): Strings which should be + sent along with the request as metadata. + + Returns: + google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsPager: + Response for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + + 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([parent]) + 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." + ) + + # Minor optimization to avoid making a copy if the user passes + # in a hub.ListGroupsRequest. + # There's no risk of modifying the input as we've already verified + # there are no flattened fields. + if not isinstance(request, hub.ListGroupsRequest): + request = hub.ListGroupsRequest(request) + # If we have keyword arguments corresponding to fields on the + # request, apply these. + if parent is not None: + request.parent = parent + + # Wrap the RPC method; this adds retry and timeout information, + # and friendly error handling. + rpc = self._transport._wrapped_methods[self._transport.list_groups] + + # Certain fields should be provided within the metadata header; + # add these here. + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", request.parent),)), + ) + + # 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.ListGroupsPager( + method=rpc, + request=request, + response=response, + metadata=metadata, + ) + + # Done; return the response. + return response + def __enter__(self) -> "HubServiceClient": return self diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py index f089ad08128f..c00d545d7ba6 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/pagers.py @@ -155,6 +155,134 @@ def __repr__(self) -> str: return "{0}<{1!r}>".format(self.__class__.__name__, self._response) +class ListHubSpokesPager: + """A pager for iterating through ``list_hub_spokes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` object, and + provides an ``__iter__`` method to iterate through its + ``spokes`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListHubSpokes`` requests and continue to iterate + through the ``spokes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` + 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[..., hub.ListHubSpokesResponse], + request: hub.ListHubSpokesRequest, + response: hub.ListHubSpokesResponse, + *, + metadata: Sequence[Tuple[str, str]] = () + ): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListHubSpokesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListHubSpokesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Spoke]: + for page in self.pages: + yield from page.spokes + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + +class ListHubSpokesAsyncPager: + """A pager for iterating through ``list_hub_spokes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``spokes`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListHubSpokes`` requests and continue to iterate + through the ``spokes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse` + 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[..., Awaitable[hub.ListHubSpokesResponse]], + request: hub.ListHubSpokesRequest, + response: hub.ListHubSpokesResponse, + *, + metadata: Sequence[Tuple[str, str]] = () + ): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListHubSpokesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListHubSpokesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListHubSpokesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + + def __aiter__(self) -> AsyncIterator[hub.Spoke]: + async def async_generator(): + async for page in self.pages: + for response in page.spokes: + yield response + + return async_generator() + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + class ListSpokesPager: """A pager for iterating through ``list_spokes`` requests. @@ -281,3 +409,387 @@ async def async_generator(): def __repr__(self) -> str: return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + +class ListRoutesPager: + """A pager for iterating through ``list_routes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` object, and + provides an ``__iter__`` method to iterate through its + ``routes`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListRoutes`` requests and continue to iterate + through the ``routes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` + 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[..., hub.ListRoutesResponse], + request: hub.ListRoutesRequest, + response: hub.ListRoutesResponse, + *, + metadata: Sequence[Tuple[str, str]] = () + ): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListRoutesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListRoutesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListRoutesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListRoutesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Route]: + for page in self.pages: + yield from page.routes + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + +class ListRoutesAsyncPager: + """A pager for iterating through ``list_routes`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``routes`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListRoutes`` requests and continue to iterate + through the ``routes`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRoutesResponse` + 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[..., Awaitable[hub.ListRoutesResponse]], + request: hub.ListRoutesRequest, + response: hub.ListRoutesResponse, + *, + metadata: Sequence[Tuple[str, str]] = () + ): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListRoutesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListRoutesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListRoutesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListRoutesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + + def __aiter__(self) -> AsyncIterator[hub.Route]: + async def async_generator(): + async for page in self.pages: + for response in page.routes: + yield response + + return async_generator() + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + +class ListRouteTablesPager: + """A pager for iterating through ``list_route_tables`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` object, and + provides an ``__iter__`` method to iterate through its + ``route_tables`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListRouteTables`` requests and continue to iterate + through the ``route_tables`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` + 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[..., hub.ListRouteTablesResponse], + request: hub.ListRouteTablesRequest, + response: hub.ListRouteTablesResponse, + *, + metadata: Sequence[Tuple[str, str]] = () + ): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListRouteTablesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListRouteTablesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.RouteTable]: + for page in self.pages: + yield from page.route_tables + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + +class ListRouteTablesAsyncPager: + """A pager for iterating through ``list_route_tables`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``route_tables`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListRouteTables`` requests and continue to iterate + through the ``route_tables`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse` + 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[..., Awaitable[hub.ListRouteTablesResponse]], + request: hub.ListRouteTablesRequest, + response: hub.ListRouteTablesResponse, + *, + metadata: Sequence[Tuple[str, str]] = () + ): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListRouteTablesResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListRouteTablesRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListRouteTablesResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + + def __aiter__(self) -> AsyncIterator[hub.RouteTable]: + async def async_generator(): + async for page in self.pages: + for response in page.route_tables: + yield response + + return async_generator() + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + +class ListGroupsPager: + """A pager for iterating through ``list_groups`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` object, and + provides an ``__iter__`` method to iterate through its + ``groups`` field. + + If there are more pages, the ``__iter__`` method will make additional + ``ListGroups`` requests and continue to iterate + through the ``groups`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` + 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[..., hub.ListGroupsResponse], + request: hub.ListGroupsRequest, + response: hub.ListGroupsResponse, + *, + metadata: Sequence[Tuple[str, str]] = () + ): + """Instantiate the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListGroupsRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListGroupsResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListGroupsRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + def pages(self) -> Iterator[hub.ListGroupsResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = self._method(self._request, metadata=self._metadata) + yield self._response + + def __iter__(self) -> Iterator[hub.Group]: + for page in self.pages: + yield from page.groups + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) + + +class ListGroupsAsyncPager: + """A pager for iterating through ``list_groups`` requests. + + This class thinly wraps an initial + :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` object, and + provides an ``__aiter__`` method to iterate through its + ``groups`` field. + + If there are more pages, the ``__aiter__`` method will make additional + ``ListGroups`` requests and continue to iterate + through the ``groups`` field on the + corresponding responses. + + All the usual :class:`google.cloud.networkconnectivity_v1.types.ListGroupsResponse` + 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[..., Awaitable[hub.ListGroupsResponse]], + request: hub.ListGroupsRequest, + response: hub.ListGroupsResponse, + *, + metadata: Sequence[Tuple[str, str]] = () + ): + """Instantiates the pager. + + Args: + method (Callable): The method that was originally called, and + which instantiated this pager. + request (google.cloud.networkconnectivity_v1.types.ListGroupsRequest): + The initial request object. + response (google.cloud.networkconnectivity_v1.types.ListGroupsResponse): + The initial response object. + metadata (Sequence[Tuple[str, str]]): Strings which should be + sent along with the request as metadata. + """ + self._method = method + self._request = hub.ListGroupsRequest(request) + self._response = response + self._metadata = metadata + + def __getattr__(self, name: str) -> Any: + return getattr(self._response, name) + + @property + async def pages(self) -> AsyncIterator[hub.ListGroupsResponse]: + yield self._response + while self._response.next_page_token: + self._request.page_token = self._response.next_page_token + self._response = await self._method(self._request, metadata=self._metadata) + yield self._response + + def __aiter__(self) -> AsyncIterator[hub.Group]: + async def async_generator(): + async for page in self.pages: + for response in page.groups: + yield response + + return async_generator() + + def __repr__(self) -> str: + return "{0}<{1!r}>".format(self.__class__.__name__, self._response) diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py index 3e0f986b14c8..156912ccd1a5 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/base.py @@ -152,6 +152,11 @@ def _prep_wrapped_messages(self, client_info): default_timeout=60.0, client_info=client_info, ), + self.list_hub_spokes: gapic_v1.method.wrap_method( + self.list_hub_spokes, + default_timeout=None, + client_info=client_info, + ), self.list_spokes: gapic_v1.method.wrap_method( self.list_spokes, default_timeout=None, @@ -172,11 +177,51 @@ def _prep_wrapped_messages(self, client_info): default_timeout=60.0, client_info=client_info, ), + self.reject_hub_spoke: gapic_v1.method.wrap_method( + self.reject_hub_spoke, + default_timeout=None, + client_info=client_info, + ), + self.accept_hub_spoke: gapic_v1.method.wrap_method( + self.accept_hub_spoke, + default_timeout=None, + client_info=client_info, + ), self.delete_spoke: gapic_v1.method.wrap_method( self.delete_spoke, default_timeout=60.0, client_info=client_info, ), + self.get_route_table: gapic_v1.method.wrap_method( + self.get_route_table, + default_timeout=None, + client_info=client_info, + ), + self.get_route: gapic_v1.method.wrap_method( + self.get_route, + default_timeout=None, + client_info=client_info, + ), + self.list_routes: gapic_v1.method.wrap_method( + self.list_routes, + default_timeout=None, + client_info=client_info, + ), + self.list_route_tables: gapic_v1.method.wrap_method( + self.list_route_tables, + default_timeout=None, + client_info=client_info, + ), + self.get_group: gapic_v1.method.wrap_method( + self.get_group, + default_timeout=None, + client_info=client_info, + ), + self.list_groups: gapic_v1.method.wrap_method( + self.list_groups, + default_timeout=None, + client_info=client_info, + ), } def close(self): @@ -235,6 +280,15 @@ def delete_hub( ]: raise NotImplementedError() + @property + def list_hub_spokes( + self, + ) -> Callable[ + [hub.ListHubSpokesRequest], + Union[hub.ListHubSpokesResponse, Awaitable[hub.ListHubSpokesResponse]], + ]: + raise NotImplementedError() + @property def list_spokes( self, @@ -268,6 +322,24 @@ def update_spoke( ]: raise NotImplementedError() + @property + def reject_hub_spoke( + self, + ) -> Callable[ + [hub.RejectHubSpokeRequest], + Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]], + ]: + raise NotImplementedError() + + @property + def accept_hub_spoke( + self, + ) -> Callable[ + [hub.AcceptHubSpokeRequest], + Union[operations_pb2.Operation, Awaitable[operations_pb2.Operation]], + ]: + raise NotImplementedError() + @property def delete_spoke( self, @@ -277,6 +349,53 @@ def delete_spoke( ]: raise NotImplementedError() + @property + def get_route_table( + self, + ) -> Callable[ + [hub.GetRouteTableRequest], Union[hub.RouteTable, Awaitable[hub.RouteTable]] + ]: + raise NotImplementedError() + + @property + def get_route( + self, + ) -> Callable[[hub.GetRouteRequest], Union[hub.Route, Awaitable[hub.Route]]]: + raise NotImplementedError() + + @property + def list_routes( + self, + ) -> Callable[ + [hub.ListRoutesRequest], + Union[hub.ListRoutesResponse, Awaitable[hub.ListRoutesResponse]], + ]: + raise NotImplementedError() + + @property + def list_route_tables( + self, + ) -> Callable[ + [hub.ListRouteTablesRequest], + Union[hub.ListRouteTablesResponse, Awaitable[hub.ListRouteTablesResponse]], + ]: + raise NotImplementedError() + + @property + def get_group( + self, + ) -> Callable[[hub.GetGroupRequest], Union[hub.Group, Awaitable[hub.Group]]]: + raise NotImplementedError() + + @property + def list_groups( + self, + ) -> Callable[ + [hub.ListGroupsRequest], + Union[hub.ListGroupsResponse, Awaitable[hub.ListGroupsResponse]], + ]: + raise NotImplementedError() + @property def list_operations( self, diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py index cd50326c0476..aba86b4de431 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc.py @@ -378,6 +378,35 @@ def delete_hub(self) -> Callable[[hub.DeleteHubRequest], operations_pb2.Operatio ) return self._stubs["delete_hub"] + @property + def list_hub_spokes( + self, + ) -> Callable[[hub.ListHubSpokesRequest], hub.ListHubSpokesResponse]: + r"""Return a callable for the list hub spokes method over gRPC. + + Lists the Network Connectivity Center spokes + associated with a specified hub and location. The list + includes both spokes that are attached to the hub and + spokes that have been proposed but not yet accepted. + + Returns: + Callable[[~.ListHubSpokesRequest], + ~.ListHubSpokesResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_hub_spokes" not in self._stubs: + self._stubs["list_hub_spokes"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/ListHubSpokes", + request_serializer=hub.ListHubSpokesRequest.serialize, + response_deserializer=hub.ListHubSpokesResponse.deserialize, + ) + return self._stubs["list_hub_spokes"] + @property def list_spokes(self) -> Callable[[hub.ListSpokesRequest], hub.ListSpokesResponse]: r"""Return a callable for the list spokes method over gRPC. @@ -481,6 +510,62 @@ def update_spoke( ) return self._stubs["update_spoke"] + @property + def reject_hub_spoke( + self, + ) -> Callable[[hub.RejectHubSpokeRequest], operations_pb2.Operation]: + r"""Return a callable for the reject hub spoke method over gRPC. + + Rejects a Network Connectivity Center spoke from being attached + to a hub. If the spoke was previously in the ``ACTIVE`` state, + it transitions to the ``INACTIVE`` state and is no longer able + to connect to other spokes that are attached to the hub. + + Returns: + Callable[[~.RejectHubSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "reject_hub_spoke" not in self._stubs: + self._stubs["reject_hub_spoke"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/RejectHubSpoke", + request_serializer=hub.RejectHubSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs["reject_hub_spoke"] + + @property + def accept_hub_spoke( + self, + ) -> Callable[[hub.AcceptHubSpokeRequest], operations_pb2.Operation]: + r"""Return a callable for the accept hub spoke method over gRPC. + + Accepts a proposal to attach a Network Connectivity + Center spoke to a hub. + + Returns: + Callable[[~.AcceptHubSpokeRequest], + ~.Operation]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "accept_hub_spoke" not in self._stubs: + self._stubs["accept_hub_spoke"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/AcceptHubSpoke", + request_serializer=hub.AcceptHubSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs["accept_hub_spoke"] + @property def delete_spoke( self, @@ -507,6 +592,154 @@ def delete_spoke( ) return self._stubs["delete_spoke"] + @property + def get_route_table(self) -> Callable[[hub.GetRouteTableRequest], hub.RouteTable]: + r"""Return a callable for the get route table method over gRPC. + + Gets details about a Network Connectivity Center + route table. + + Returns: + Callable[[~.GetRouteTableRequest], + ~.RouteTable]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_route_table" not in self._stubs: + self._stubs["get_route_table"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/GetRouteTable", + request_serializer=hub.GetRouteTableRequest.serialize, + response_deserializer=hub.RouteTable.deserialize, + ) + return self._stubs["get_route_table"] + + @property + def get_route(self) -> Callable[[hub.GetRouteRequest], hub.Route]: + r"""Return a callable for the get route method over gRPC. + + Gets details about the specified route. + + Returns: + Callable[[~.GetRouteRequest], + ~.Route]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_route" not in self._stubs: + self._stubs["get_route"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/GetRoute", + request_serializer=hub.GetRouteRequest.serialize, + response_deserializer=hub.Route.deserialize, + ) + return self._stubs["get_route"] + + @property + def list_routes(self) -> Callable[[hub.ListRoutesRequest], hub.ListRoutesResponse]: + r"""Return a callable for the list routes method over gRPC. + + Lists routes in a given project. + + Returns: + Callable[[~.ListRoutesRequest], + ~.ListRoutesResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_routes" not in self._stubs: + self._stubs["list_routes"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/ListRoutes", + request_serializer=hub.ListRoutesRequest.serialize, + response_deserializer=hub.ListRoutesResponse.deserialize, + ) + return self._stubs["list_routes"] + + @property + def list_route_tables( + self, + ) -> Callable[[hub.ListRouteTablesRequest], hub.ListRouteTablesResponse]: + r"""Return a callable for the list route tables method over gRPC. + + Lists route tables in a given project. + + Returns: + Callable[[~.ListRouteTablesRequest], + ~.ListRouteTablesResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_route_tables" not in self._stubs: + self._stubs["list_route_tables"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/ListRouteTables", + request_serializer=hub.ListRouteTablesRequest.serialize, + response_deserializer=hub.ListRouteTablesResponse.deserialize, + ) + return self._stubs["list_route_tables"] + + @property + def get_group(self) -> Callable[[hub.GetGroupRequest], hub.Group]: + r"""Return a callable for the get group method over gRPC. + + Gets details about a Network Connectivity Center + group. + + Returns: + Callable[[~.GetGroupRequest], + ~.Group]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_group" not in self._stubs: + self._stubs["get_group"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/GetGroup", + request_serializer=hub.GetGroupRequest.serialize, + response_deserializer=hub.Group.deserialize, + ) + return self._stubs["get_group"] + + @property + def list_groups(self) -> Callable[[hub.ListGroupsRequest], hub.ListGroupsResponse]: + r"""Return a callable for the list groups method over gRPC. + + Lists groups in a given hub. + + Returns: + Callable[[~.ListGroupsRequest], + ~.ListGroupsResponse]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_groups" not in self._stubs: + self._stubs["list_groups"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/ListGroups", + request_serializer=hub.ListGroupsRequest.serialize, + response_deserializer=hub.ListGroupsResponse.deserialize, + ) + return self._stubs["list_groups"] + def close(self): self.grpc_channel.close() diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py index 1cb8d6e558a5..55d95c003bdf 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/services/hub_service/transports/grpc_asyncio.py @@ -387,6 +387,35 @@ def delete_hub( ) return self._stubs["delete_hub"] + @property + def list_hub_spokes( + self, + ) -> Callable[[hub.ListHubSpokesRequest], Awaitable[hub.ListHubSpokesResponse]]: + r"""Return a callable for the list hub spokes method over gRPC. + + Lists the Network Connectivity Center spokes + associated with a specified hub and location. The list + includes both spokes that are attached to the hub and + spokes that have been proposed but not yet accepted. + + Returns: + Callable[[~.ListHubSpokesRequest], + Awaitable[~.ListHubSpokesResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_hub_spokes" not in self._stubs: + self._stubs["list_hub_spokes"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/ListHubSpokes", + request_serializer=hub.ListHubSpokesRequest.serialize, + response_deserializer=hub.ListHubSpokesResponse.deserialize, + ) + return self._stubs["list_hub_spokes"] + @property def list_spokes( self, @@ -492,6 +521,62 @@ def update_spoke( ) return self._stubs["update_spoke"] + @property + def reject_hub_spoke( + self, + ) -> Callable[[hub.RejectHubSpokeRequest], Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the reject hub spoke method over gRPC. + + Rejects a Network Connectivity Center spoke from being attached + to a hub. If the spoke was previously in the ``ACTIVE`` state, + it transitions to the ``INACTIVE`` state and is no longer able + to connect to other spokes that are attached to the hub. + + Returns: + Callable[[~.RejectHubSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "reject_hub_spoke" not in self._stubs: + self._stubs["reject_hub_spoke"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/RejectHubSpoke", + request_serializer=hub.RejectHubSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs["reject_hub_spoke"] + + @property + def accept_hub_spoke( + self, + ) -> Callable[[hub.AcceptHubSpokeRequest], Awaitable[operations_pb2.Operation]]: + r"""Return a callable for the accept hub spoke method over gRPC. + + Accepts a proposal to attach a Network Connectivity + Center spoke to a hub. + + Returns: + Callable[[~.AcceptHubSpokeRequest], + Awaitable[~.Operation]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "accept_hub_spoke" not in self._stubs: + self._stubs["accept_hub_spoke"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/AcceptHubSpoke", + request_serializer=hub.AcceptHubSpokeRequest.serialize, + response_deserializer=operations_pb2.Operation.FromString, + ) + return self._stubs["accept_hub_spoke"] + @property def delete_spoke( self, @@ -518,6 +603,160 @@ def delete_spoke( ) return self._stubs["delete_spoke"] + @property + def get_route_table( + self, + ) -> Callable[[hub.GetRouteTableRequest], Awaitable[hub.RouteTable]]: + r"""Return a callable for the get route table method over gRPC. + + Gets details about a Network Connectivity Center + route table. + + Returns: + Callable[[~.GetRouteTableRequest], + Awaitable[~.RouteTable]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_route_table" not in self._stubs: + self._stubs["get_route_table"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/GetRouteTable", + request_serializer=hub.GetRouteTableRequest.serialize, + response_deserializer=hub.RouteTable.deserialize, + ) + return self._stubs["get_route_table"] + + @property + def get_route(self) -> Callable[[hub.GetRouteRequest], Awaitable[hub.Route]]: + r"""Return a callable for the get route method over gRPC. + + Gets details about the specified route. + + Returns: + Callable[[~.GetRouteRequest], + Awaitable[~.Route]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_route" not in self._stubs: + self._stubs["get_route"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/GetRoute", + request_serializer=hub.GetRouteRequest.serialize, + response_deserializer=hub.Route.deserialize, + ) + return self._stubs["get_route"] + + @property + def list_routes( + self, + ) -> Callable[[hub.ListRoutesRequest], Awaitable[hub.ListRoutesResponse]]: + r"""Return a callable for the list routes method over gRPC. + + Lists routes in a given project. + + Returns: + Callable[[~.ListRoutesRequest], + Awaitable[~.ListRoutesResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_routes" not in self._stubs: + self._stubs["list_routes"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/ListRoutes", + request_serializer=hub.ListRoutesRequest.serialize, + response_deserializer=hub.ListRoutesResponse.deserialize, + ) + return self._stubs["list_routes"] + + @property + def list_route_tables( + self, + ) -> Callable[[hub.ListRouteTablesRequest], Awaitable[hub.ListRouteTablesResponse]]: + r"""Return a callable for the list route tables method over gRPC. + + Lists route tables in a given project. + + Returns: + Callable[[~.ListRouteTablesRequest], + Awaitable[~.ListRouteTablesResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_route_tables" not in self._stubs: + self._stubs["list_route_tables"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/ListRouteTables", + request_serializer=hub.ListRouteTablesRequest.serialize, + response_deserializer=hub.ListRouteTablesResponse.deserialize, + ) + return self._stubs["list_route_tables"] + + @property + def get_group(self) -> Callable[[hub.GetGroupRequest], Awaitable[hub.Group]]: + r"""Return a callable for the get group method over gRPC. + + Gets details about a Network Connectivity Center + group. + + Returns: + Callable[[~.GetGroupRequest], + Awaitable[~.Group]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "get_group" not in self._stubs: + self._stubs["get_group"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/GetGroup", + request_serializer=hub.GetGroupRequest.serialize, + response_deserializer=hub.Group.deserialize, + ) + return self._stubs["get_group"] + + @property + def list_groups( + self, + ) -> Callable[[hub.ListGroupsRequest], Awaitable[hub.ListGroupsResponse]]: + r"""Return a callable for the list groups method over gRPC. + + Lists groups in a given hub. + + Returns: + Callable[[~.ListGroupsRequest], + Awaitable[~.ListGroupsResponse]]: + A function that, when called, will call the underlying RPC + on the server. + """ + # Generate a "stub function" on-the-fly which will actually make + # the request. + # gRPC handles serialization and deserialization, so we just need + # to pass in the functions for each. + if "list_groups" not in self._stubs: + self._stubs["list_groups"] = self.grpc_channel.unary_unary( + "/google.cloud.networkconnectivity.v1.HubService/ListGroups", + request_serializer=hub.ListGroupsRequest.serialize, + response_deserializer=hub.ListGroupsResponse.deserialize, + ) + return self._stubs["list_groups"] + def close(self): return self.grpc_channel.close() diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/__init__.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/__init__.py index 15d28beafa83..6a958bec941f 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/__init__.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/__init__.py @@ -15,25 +15,48 @@ # from .common import OperationMetadata from .hub import ( + AcceptHubSpokeRequest, + AcceptHubSpokeResponse, CreateHubRequest, CreateSpokeRequest, DeleteHubRequest, DeleteSpokeRequest, + GetGroupRequest, GetHubRequest, + GetRouteRequest, + GetRouteTableRequest, GetSpokeRequest, + Group, Hub, LinkedInterconnectAttachments, LinkedRouterApplianceInstances, + LinkedVpcNetwork, LinkedVpnTunnels, + ListGroupsRequest, + ListGroupsResponse, + ListHubSpokesRequest, + ListHubSpokesResponse, ListHubsRequest, ListHubsResponse, + ListRoutesRequest, + ListRoutesResponse, + ListRouteTablesRequest, + ListRouteTablesResponse, ListSpokesRequest, ListSpokesResponse, LocationFeature, LocationMetadata, + NextHopVpcNetwork, + RejectHubSpokeRequest, + RejectHubSpokeResponse, + Route, RouterApplianceInstance, + RouteTable, + RouteType, RoutingVPC, Spoke, + SpokeSummary, + SpokeType, State, UpdateHubRequest, UpdateSpokeRequest, @@ -49,27 +72,50 @@ __all__ = ( "OperationMetadata", + "AcceptHubSpokeRequest", + "AcceptHubSpokeResponse", "CreateHubRequest", "CreateSpokeRequest", "DeleteHubRequest", "DeleteSpokeRequest", + "GetGroupRequest", "GetHubRequest", + "GetRouteRequest", + "GetRouteTableRequest", "GetSpokeRequest", + "Group", "Hub", "LinkedInterconnectAttachments", "LinkedRouterApplianceInstances", + "LinkedVpcNetwork", "LinkedVpnTunnels", + "ListGroupsRequest", + "ListGroupsResponse", + "ListHubSpokesRequest", + "ListHubSpokesResponse", "ListHubsRequest", "ListHubsResponse", + "ListRoutesRequest", + "ListRoutesResponse", + "ListRouteTablesRequest", + "ListRouteTablesResponse", "ListSpokesRequest", "ListSpokesResponse", "LocationMetadata", + "NextHopVpcNetwork", + "RejectHubSpokeRequest", + "RejectHubSpokeResponse", + "Route", "RouterApplianceInstance", + "RouteTable", "RoutingVPC", "Spoke", + "SpokeSummary", "UpdateHubRequest", "UpdateSpokeRequest", "LocationFeature", + "RouteType", + "SpokeType", "State", "CreatePolicyBasedRouteRequest", "DeletePolicyBasedRouteRequest", diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/hub.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/hub.py index 3155d6e271d5..0cc4fb783683 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/hub.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/hub.py @@ -25,27 +25,50 @@ package="google.cloud.networkconnectivity.v1", manifest={ "LocationFeature", + "RouteType", "State", + "SpokeType", "Hub", "RoutingVPC", "Spoke", + "RouteTable", + "Route", + "Group", "ListHubsRequest", "ListHubsResponse", "GetHubRequest", "CreateHubRequest", "UpdateHubRequest", "DeleteHubRequest", + "ListHubSpokesRequest", + "ListHubSpokesResponse", "ListSpokesRequest", "ListSpokesResponse", "GetSpokeRequest", "CreateSpokeRequest", "UpdateSpokeRequest", "DeleteSpokeRequest", + "AcceptHubSpokeRequest", + "AcceptHubSpokeResponse", + "RejectHubSpokeRequest", + "RejectHubSpokeResponse", + "GetRouteTableRequest", + "GetRouteRequest", + "ListRoutesRequest", + "ListRoutesResponse", + "ListRouteTablesRequest", + "ListRouteTablesResponse", + "ListGroupsRequest", + "ListGroupsResponse", "LinkedVpnTunnels", "LinkedInterconnectAttachments", "LinkedRouterApplianceInstances", + "LinkedVpcNetwork", "RouterApplianceInstance", "LocationMetadata", + "NextHopVpcNetwork", + "SpokeSummary", + "GetGroupRequest", }, ) @@ -69,6 +92,26 @@ class LocationFeature(proto.Enum): SITE_TO_SITE_SPOKES = 2 +class RouteType(proto.Enum): + r"""The route's type + + Values: + ROUTE_TYPE_UNSPECIFIED (0): + No route type information specified + VPC_PRIMARY_SUBNET (1): + The route leads to a destination within the + primary address range of the VPC network's + subnet. + VPC_SECONDARY_SUBNET (2): + The route leads to a destination within the + secondary address range of the VPC network's + subnet. + """ + ROUTE_TYPE_UNSPECIFIED = 0 + VPC_PRIMARY_SUBNET = 1 + VPC_SECONDARY_SUBNET = 2 + + class State(proto.Enum): r"""The State enum represents the lifecycle stage of a Network Connectivity Center resource. @@ -78,30 +121,71 @@ class State(proto.Enum): No state information available CREATING (1): The resource's create operation is in - progress + progress. ACTIVE (2): The resource is active DELETING (3): - The resource's Delete operation is in - progress + The resource's delete operation is in + progress. + ACCEPTING (8): + The resource's accept operation is in + progress. + REJECTING (9): + The resource's reject operation is in + progress. UPDATING (6): - The resource's Update operation is in - progress + The resource's update operation is in + progress. + INACTIVE (7): + The resource is inactive. + OBSOLETE (10): + The hub associated with this spoke resource + has been deleted. This state applies to spoke + resources only. """ STATE_UNSPECIFIED = 0 CREATING = 1 ACTIVE = 2 DELETING = 3 + ACCEPTING = 8 + REJECTING = 9 UPDATING = 6 + INACTIVE = 7 + OBSOLETE = 10 + + +class SpokeType(proto.Enum): + r"""The SpokeType enum represents the type of spoke. The type + reflects the kind of resource that a spoke is associated with. + + Values: + SPOKE_TYPE_UNSPECIFIED (0): + Unspecified spoke type. + VPN_TUNNEL (1): + Spokes associated with VPN tunnels. + INTERCONNECT_ATTACHMENT (2): + Spokes associated with VLAN attachments. + ROUTER_APPLIANCE (3): + Spokes associated with router appliance + instances. + VPC_NETWORK (4): + Spokes associated with VPC networks. + """ + SPOKE_TYPE_UNSPECIFIED = 0 + VPN_TUNNEL = 1 + INTERCONNECT_ATTACHMENT = 2 + ROUTER_APPLIANCE = 3 + VPC_NETWORK = 4 class Hub(proto.Message): - r"""A Network Connectivity Center hub is a collection of spokes. - A single hub can contain spokes from multiple regions. However, - if any of a hub's spokes use the data transfer feature, the - resources associated with those spokes must all reside in the - same VPC network. Spokes that do not use data transfer can be - associated with any VPC network in your project. + r"""A Network Connectivity Center hub is a global management + resource to which you attach spokes. A single hub can contain + spokes from multiple regions. However, if any of a hub's spokes + use the site-to-site data transfer feature, the resources + associated with those spokes must all be in the same VPC + network. Spokes that do not use site-to-site data transfer can + be associated with any VPC network in your project. Attributes: name (str): @@ -114,8 +198,8 @@ class Hub(proto.Message): Output only. The time the hub was last updated. labels (MutableMapping[str, str]): - Optional labels in key:value format. For more information - about labels, see `Requirements for + Optional labels in key-value pair format. For more + information about labels, see `Requirements for labels `__. description (str): An optional description of the hub. @@ -133,6 +217,21 @@ class Hub(proto.Message): This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + route_tables (MutableSequence[str]): + Output only. The route tables that belong to this hub. They + use the following form: + ``projects/{project_number}/locations/global/hubs/{hub_id}/routeTables/{route_table_id}`` + + This field is read-only. Network Connectivity Center + automatically populates it based on the route tables nested + under the hub. + spoke_summary (google.cloud.networkconnectivity_v1.types.SpokeSummary): + Output only. A summary of the spokes + associated with a hub. The summary includes a + count of spokes according to type and according + to state. If any spokes are inactive, the + summary also lists the reasons they are + inactive, including a count for each reason. """ name: str = proto.Field( @@ -172,6 +271,15 @@ class Hub(proto.Message): number=10, message="RoutingVPC", ) + route_tables: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=11, + ) + spoke_summary: "SpokeSummary" = proto.Field( + proto.MESSAGE, + number=12, + message="SpokeSummary", + ) class RoutingVPC(proto.Message): @@ -201,8 +309,8 @@ class RoutingVPC(proto.Message): class Spoke(proto.Message): - r"""A Network Connectivity Center spoke represents a connection between - your Google Cloud network resources and a non-Google-Cloud network. + r"""A Network Connectivity Center spoke represents one or more network + connectivity resources. When you create a spoke, you associate it with a hub. You must also identify a value for exactly one of the following fields: @@ -210,6 +318,7 @@ class Spoke(proto.Message): - linked_vpn_tunnels - linked_interconnect_attachments - linked_router_appliance_instances + - linked_vpc_network Attributes: name (str): @@ -222,14 +331,17 @@ class Spoke(proto.Message): Output only. The time the spoke was last updated. labels (MutableMapping[str, str]): - Optional labels in key:value format. For more information - about labels, see `Requirements for + Optional labels in key-value pair format. For more + information about labels, see `Requirements for labels `__. description (str): An optional description of the spoke. hub (str): Immutable. The name of the hub that this spoke is attached to. + group (str): + Optional. The name of the group that this + spoke is associated with. linked_vpn_tunnels (google.cloud.networkconnectivity_v1.types.LinkedVpnTunnels): VPN tunnels that are associated with the spoke. @@ -239,16 +351,76 @@ class Spoke(proto.Message): linked_router_appliance_instances (google.cloud.networkconnectivity_v1.types.LinkedRouterApplianceInstances): Router appliance instances that are associated with the spoke. + linked_vpc_network (google.cloud.networkconnectivity_v1.types.LinkedVpcNetwork): + Optional. VPC network that is associated with + the spoke. unique_id (str): Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new - spoke is assigned a different unique_id. + spoke is assigned a different ``unique_id``. state (google.cloud.networkconnectivity_v1.types.State): Output only. The current lifecycle state of this spoke. + reasons (MutableSequence[google.cloud.networkconnectivity_v1.types.Spoke.StateReason]): + Output only. The reasons for current state of the spoke. + Only present when the spoke is in the ``INACTIVE`` state. + spoke_type (google.cloud.networkconnectivity_v1.types.SpokeType): + Output only. The type of resource associated + with the spoke. """ + class StateReason(proto.Message): + r"""The reason a spoke is inactive. + + Attributes: + code (google.cloud.networkconnectivity_v1.types.Spoke.StateReason.Code): + The code associated with this reason. + message (str): + Human-readable details about this reason. + user_details (str): + Additional information provided by the user + in the RejectSpoke call. + """ + + class Code(proto.Enum): + r"""The Code enum represents the various reasons a state can be + ``INACTIVE``. + + Values: + CODE_UNSPECIFIED (0): + No information available. + PENDING_REVIEW (1): + The proposed spoke is pending review. + REJECTED (2): + The proposed spoke has been rejected by the + hub administrator. + PAUSED (3): + The spoke has been deactivated internally. + FAILED (4): + Network Connectivity Center encountered + errors while accepting the spoke. + """ + CODE_UNSPECIFIED = 0 + PENDING_REVIEW = 1 + REJECTED = 2 + PAUSED = 3 + FAILED = 4 + + code: "Spoke.StateReason.Code" = proto.Field( + proto.ENUM, + number=1, + enum="Spoke.StateReason.Code", + ) + message: str = proto.Field( + proto.STRING, + number=2, + ) + user_details: str = proto.Field( + proto.STRING, + number=3, + ) + name: str = proto.Field( proto.STRING, number=1, @@ -276,6 +448,10 @@ class Spoke(proto.Message): proto.STRING, number=6, ) + group: str = proto.Field( + proto.STRING, + number=23, + ) linked_vpn_tunnels: "LinkedVpnTunnels" = proto.Field( proto.MESSAGE, number=17, @@ -291,6 +467,11 @@ class Spoke(proto.Message): number=19, message="LinkedRouterApplianceInstances", ) + linked_vpc_network: "LinkedVpcNetwork" = proto.Field( + proto.MESSAGE, + number=20, + message="LinkedVpcNetwork", + ) unique_id: str = proto.Field( proto.STRING, number=11, @@ -300,6 +481,249 @@ class Spoke(proto.Message): number=15, enum="State", ) + reasons: MutableSequence[StateReason] = proto.RepeatedField( + proto.MESSAGE, + number=21, + message=StateReason, + ) + spoke_type: "SpokeType" = proto.Field( + proto.ENUM, + number=22, + enum="SpokeType", + ) + + +class RouteTable(proto.Message): + r""" + + Attributes: + name (str): + Immutable. The name of the route table. Route table names + must be unique. They use the following form: + ``projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}`` + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the route table was + created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the route table was + last updated. + labels (MutableMapping[str, str]): + Optional labels in key-value pair format. For more + information about labels, see `Requirements for + labels `__. + description (str): + An optional description of the route table. + uid (str): + Output only. The Google-generated UUID for the route table. + This value is unique across all route table resources. If a + route table is deleted and another with the same name is + created, the new route table is assigned a different + ``uid``. + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The current lifecycle state of + this route table. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=3, + message=timestamp_pb2.Timestamp, + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=4, + ) + description: str = proto.Field( + proto.STRING, + number=5, + ) + uid: str = proto.Field( + proto.STRING, + number=6, + ) + state: "State" = proto.Field( + proto.ENUM, + number=7, + enum="State", + ) + + +class Route(proto.Message): + r"""A route defines a path from VM instances within a spoke to a + specific destination resource. Only VPC spokes have routes. + + Attributes: + name (str): + Immutable. The name of the route. Route names must be + unique. Route names use the following form: + ``projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}/routes/{route_id}`` + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the route was created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the route was last + updated. + ip_cidr_range (str): + The destination IP address range. + type_ (google.cloud.networkconnectivity_v1.types.RouteType): + Output only. The route's type. Its type is + determined by the properties of its IP address + range. + next_hop_vpc_network (google.cloud.networkconnectivity_v1.types.NextHopVpcNetwork): + Immutable. The destination VPC network for + packets on this route. + labels (MutableMapping[str, str]): + Optional labels in key-value pair format. For more + information about labels, see `Requirements for + labels `__. + description (str): + An optional description of the route. + uid (str): + Output only. The Google-generated UUID for the route. This + value is unique across all Network Connectivity Center route + resources. If a route is deleted and another with the same + name is created, the new route is assigned a different + ``uid``. + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The current lifecycle state of + the route. + spoke (str): + Immutable. The spoke that this route leads + to. Example: + projects/12345/locations/global/spokes/SPOKE + location (str): + Output only. The location of the route. + Uses the following form: + "projects/{project}/locations/{location}" + Example: projects/1234/locations/us-central1 + """ + + name: str = proto.Field( + proto.STRING, + number=3, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=4, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=5, + message=timestamp_pb2.Timestamp, + ) + ip_cidr_range: str = proto.Field( + proto.STRING, + number=1, + ) + type_: "RouteType" = proto.Field( + proto.ENUM, + number=10, + enum="RouteType", + ) + next_hop_vpc_network: "NextHopVpcNetwork" = proto.Field( + proto.MESSAGE, + number=2, + message="NextHopVpcNetwork", + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=6, + ) + description: str = proto.Field( + proto.STRING, + number=7, + ) + uid: str = proto.Field( + proto.STRING, + number=8, + ) + state: "State" = proto.Field( + proto.ENUM, + number=9, + enum="State", + ) + spoke: str = proto.Field( + proto.STRING, + number=11, + ) + location: str = proto.Field( + proto.STRING, + number=12, + ) + + +class Group(proto.Message): + r"""A group represents a subset of spokes attached to a hub. + + Attributes: + name (str): + Immutable. The name of the group. Group names must be + unique. They use the following form: + ``projects/{project_number}/locations/global/hubs/{hub}/groups/{group_id}`` + create_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the group was created. + update_time (google.protobuf.timestamp_pb2.Timestamp): + Output only. The time the group was last + updated. + labels (MutableMapping[str, str]): + Optional. Labels in key-value pair format. For more + information about labels, see `Requirements for + labels `__. + description (str): + Optional. The description of the group. + uid (str): + Output only. The Google-generated UUID for the group. This + value is unique across all group resources. If a group is + deleted and another with the same name is created, the new + route table is assigned a different unique_id. + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The current lifecycle state of + this group. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + create_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=2, + message=timestamp_pb2.Timestamp, + ) + update_time: timestamp_pb2.Timestamp = proto.Field( + proto.MESSAGE, + number=3, + message=timestamp_pb2.Timestamp, + ) + labels: MutableMapping[str, str] = proto.MapField( + proto.STRING, + proto.STRING, + number=4, + ) + description: str = proto.Field( + proto.STRING, + number=5, + ) + uid: str = proto.Field( + proto.STRING, + number=6, + ) + state: "State" = proto.Field( + proto.ENUM, + number=7, + enum="State", + ) class ListHubsRequest(proto.Message): @@ -311,13 +735,13 @@ class ListHubsRequest(proto.Message): parent (str): Required. The parent resource's name. page_size (int): - The maximum number of results per page that - should be returned. + The maximum number of results per page to + return. page_token (str): The page token. filter (str): - An expression that filters the results listed - in the response. + An expression that filters the list of + results. order_by (str): Sort the results by a certain order. """ @@ -353,9 +777,9 @@ class ListHubsResponse(proto.Message): hubs (MutableSequence[google.cloud.networkconnectivity_v1.types.Hub]): The requested hubs. next_page_token (str): - The next pagination token in the List response. It should be - used as page_token for the following request. An empty value - means no more result. + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. unreachable (MutableSequence[str]): Locations that could not be reached. """ @@ -409,13 +833,13 @@ class CreateHubRequest(proto.Message): hub (google.cloud.networkconnectivity_v1.types.Hub): Required. The initial values for a new hub. request_id (str): - Optional. A unique request ID (optional). If - you specify this ID, you can use it in cases - when you need to retry your request. When you - need to retry, this ID lets the server know that - it can ignore the request if it has already been - completed. The server guarantees that for at - least 60 minutes after the first request. + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If @@ -467,13 +891,13 @@ class UpdateHubRequest(proto.Message): Required. The state that the hub should be in after the update. request_id (str): - Optional. A unique request ID (optional). If - you specify this ID, you can use it in cases - when you need to retry your request. When you - need to retry, this ID lets the server know that - it can ignore the request if it has already been - completed. The server guarantees that for at - least 60 minutes after the first request. + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If @@ -513,13 +937,13 @@ class DeleteHubRequest(proto.Message): name (str): Required. The name of the hub to delete. request_id (str): - Optional. A unique request ID (optional). If - you specify this ID, you can use it in cases - when you need to retry your request. When you - need to retry, this ID lets the server know that - it can ignore the request if it has already been - completed. The server guarantees that for at - least 60 minutes after the first request. + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If @@ -545,6 +969,127 @@ class DeleteHubRequest(proto.Message): ) +class ListHubSpokesRequest(proto.Message): + r"""The request for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + + Attributes: + name (str): + Required. The name of the hub. + spoke_locations (MutableSequence[str]): + A list of locations. Specify one of the following: + ``[global]``, a single region (for example, + ``[us-central1]``), or a combination of values (for example, + ``[global, us-central1, us-west1]``). If the spoke_locations + field is populated, the list of results includes only spokes + in the specified location. If the spoke_locations field is + not populated, the list of results includes spokes in all + locations. + page_size (int): + The maximum number of results to return per + page. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by name or create_time. + view (google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest.SpokeView): + The view of the spoke to return. + The view that you use determines which spoke + fields are included in the response. + """ + + class SpokeView(proto.Enum): + r"""Enum that controls which spoke fields are included in the + response. + + Values: + SPOKE_VIEW_UNSPECIFIED (0): + The spoke view is unspecified. When the spoke view is + unspecified, the API returns the same fields as the + ``BASIC`` view. + BASIC (1): + Includes ``name``, ``create_time``, ``hub``, ``unique_id``, + ``state``, ``reasons``, and ``spoke_type``. This is the + default value. + DETAILED (2): + Includes all spoke fields except ``labels``. You can use the + ``DETAILED`` view only when you set the ``spoke_locations`` + field to ``[global]``. + """ + SPOKE_VIEW_UNSPECIFIED = 0 + BASIC = 1 + DETAILED = 2 + + name: str = proto.Field( + proto.STRING, + number=1, + ) + spoke_locations: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=2, + ) + page_size: int = proto.Field( + proto.INT32, + number=3, + ) + page_token: str = proto.Field( + proto.STRING, + number=4, + ) + filter: str = proto.Field( + proto.STRING, + number=5, + ) + order_by: str = proto.Field( + proto.STRING, + number=6, + ) + view: SpokeView = proto.Field( + proto.ENUM, + number=7, + enum=SpokeView, + ) + + +class ListHubSpokesResponse(proto.Message): + r"""The response for + [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. + + Attributes: + spokes (MutableSequence[google.cloud.networkconnectivity_v1.types.Spoke]): + The requested spokes. The spoke fields can be partially + populated based on the ``view`` field in the request + message. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + Locations that could not be reached. + """ + + @property + def raw_page(self): + return self + + spokes: MutableSequence["Spoke"] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message="Spoke", + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + class ListSpokesRequest(proto.Message): r"""The request for [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. @@ -553,13 +1098,13 @@ class ListSpokesRequest(proto.Message): parent (str): Required. The parent resource. page_size (int): - The maximum number of results per page that - should be returned. + The maximum number of results to return per + page. page_token (str): The page token. filter (str): - An expression that filters the results listed - in the response. + An expression that filters the list of + results. order_by (str): Sort the results by a certain order. """ @@ -594,9 +1139,9 @@ class ListSpokesResponse(proto.Message): spokes (MutableSequence[google.cloud.networkconnectivity_v1.types.Spoke]): The requested spokes. next_page_token (str): - The next pagination token in the List response. It should be - used as page_token for the following request. An empty value - means no more result. + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. unreachable (MutableSequence[str]): Locations that could not be reached. """ @@ -647,13 +1192,13 @@ class CreateSpokeRequest(proto.Message): spoke (google.cloud.networkconnectivity_v1.types.Spoke): Required. The initial values for a new spoke. request_id (str): - Optional. A unique request ID (optional). If - you specify this ID, you can use it in cases - when you need to retry your request. When you - need to retry, this ID lets the server know that - it can ignore the request if it has already been - completed. The server guarantees that for at - least 60 minutes after the first request. + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If @@ -705,13 +1250,13 @@ class UpdateSpokeRequest(proto.Message): Required. The state that the spoke should be in after the update. request_id (str): - Optional. A unique request ID (optional). If - you specify this ID, you can use it in cases - when you need to retry your request. When you - need to retry, this ID lets the server know that - it can ignore the request if it has already been - completed. The server guarantees that for at - least 60 minutes after the first request. + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If @@ -751,13 +1296,13 @@ class DeleteSpokeRequest(proto.Message): name (str): Required. The name of the spoke to delete. request_id (str): - Optional. A unique request ID (optional). If - you specify this ID, you can use it in cases - when you need to retry your request. When you - need to retry, this ID lets the server know that - it can ignore the request if it has already been - completed. The server guarantees that for at - least 60 minutes after the first request. + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If @@ -783,22 +1328,419 @@ class DeleteSpokeRequest(proto.Message): ) -class LinkedVpnTunnels(proto.Message): - r"""A collection of Cloud VPN tunnel resources. These resources - should be redundant HA VPN tunnels that all advertise the same - prefixes to Google Cloud. Alternatively, in a passive/active - configuration, all tunnels should be capable of advertising the - same prefixes. +class AcceptHubSpokeRequest(proto.Message): + r"""The request for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. Attributes: - uris (MutableSequence[str]): - The URIs of linked VPN tunnel resources. - site_to_site_data_transfer (bool): - A value that controls whether site-to-site data transfer is - enabled for these resources. Data transfer is available only - in `supported - locations `__. - vpc_network (str): + name (str): + Required. The name of the hub into which to + accept the spoke. + spoke_uri (str): + Required. The URI of the spoke to accept into + the hub. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + spoke_uri: str = proto.Field( + proto.STRING, + number=2, + ) + request_id: str = proto.Field( + proto.STRING, + number=3, + ) + + +class AcceptHubSpokeResponse(proto.Message): + r"""The response for + [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. + + Attributes: + spoke (google.cloud.networkconnectivity_v1.types.Spoke): + The spoke that was operated on. + """ + + spoke: "Spoke" = proto.Field( + proto.MESSAGE, + number=1, + message="Spoke", + ) + + +class RejectHubSpokeRequest(proto.Message): + r"""The request for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. + + Attributes: + name (str): + Required. The name of the hub from which to + reject the spoke. + spoke_uri (str): + Required. The URI of the spoke to reject from + the hub. + request_id (str): + Optional. A request ID to identify requests. + Specify a unique request ID so that if you must + retry your request, the server knows to ignore + the request if it has already been completed. + The server guarantees that a request doesn't + result in creation of duplicate commitments for + at least 60 minutes. + + 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 to see whether the + original operation was received. If it was, the + server ignores the second request. This behavior + prevents clients from mistakenly 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). + details (str): + Optional. Additional information provided by + the hub administrator. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + spoke_uri: str = proto.Field( + proto.STRING, + number=2, + ) + request_id: str = proto.Field( + proto.STRING, + number=3, + ) + details: str = proto.Field( + proto.STRING, + number=4, + ) + + +class RejectHubSpokeResponse(proto.Message): + r"""The response for + [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. + + Attributes: + spoke (google.cloud.networkconnectivity_v1.types.Spoke): + The spoke that was operated on. + """ + + spoke: "Spoke" = proto.Field( + proto.MESSAGE, + number=1, + message="Spoke", + ) + + +class GetRouteTableRequest(proto.Message): + r"""The request for + [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. + + Attributes: + name (str): + Required. The name of the route table + resource. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +class GetRouteRequest(proto.Message): + r"""The request for + [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. + + Attributes: + name (str): + Required. The name of the route resource. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + +class ListRoutesRequest(proto.Message): + r"""Request for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + + Attributes: + parent (str): + Required. The parent resource's name. + page_size (int): + The maximum number of results to return per + page. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListRoutesResponse(proto.Message): + r"""Response for + [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] + method. + + Attributes: + routes (MutableSequence[google.cloud.networkconnectivity_v1.types.Route]): + The requested routes. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + RouteTables that could not be reached. + """ + + @property + def raw_page(self): + return self + + routes: MutableSequence["Route"] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message="Route", + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class ListRouteTablesRequest(proto.Message): + r"""Request for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + + Attributes: + parent (str): + Required. The parent resource's name. + page_size (int): + The maximum number of results to return per + page. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListRouteTablesResponse(proto.Message): + r"""Response for + [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] + method. + + Attributes: + route_tables (MutableSequence[google.cloud.networkconnectivity_v1.types.RouteTable]): + The requested route tables. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + Hubs that could not be reached. + """ + + @property + def raw_page(self): + return self + + route_tables: MutableSequence["RouteTable"] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message="RouteTable", + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class ListGroupsRequest(proto.Message): + r"""Request for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + + Attributes: + parent (str): + Required. The parent resource's name. + page_size (int): + The maximum number of results to return per + page. + page_token (str): + The page token. + filter (str): + An expression that filters the list of + results. + order_by (str): + Sort the results by a certain order. + """ + + parent: str = proto.Field( + proto.STRING, + number=1, + ) + page_size: int = proto.Field( + proto.INT32, + number=2, + ) + page_token: str = proto.Field( + proto.STRING, + number=3, + ) + filter: str = proto.Field( + proto.STRING, + number=4, + ) + order_by: str = proto.Field( + proto.STRING, + number=5, + ) + + +class ListGroupsResponse(proto.Message): + r"""Response for + [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] + method. + + Attributes: + groups (MutableSequence[google.cloud.networkconnectivity_v1.types.Group]): + The requested groups. + next_page_token (str): + The token for the next page of the response. To see more + results, use this value as the page_token for your next + request. If this value is empty, there are no more results. + unreachable (MutableSequence[str]): + Hubs that could not be reached. + """ + + @property + def raw_page(self): + return self + + groups: MutableSequence["Group"] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message="Group", + ) + next_page_token: str = proto.Field( + proto.STRING, + number=2, + ) + unreachable: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=3, + ) + + +class LinkedVpnTunnels(proto.Message): + r"""A collection of Cloud VPN tunnel resources. These resources + should be redundant HA VPN tunnels that all advertise the same + prefixes to Google Cloud. Alternatively, in a passive/active + configuration, all tunnels should be capable of advertising the + same prefixes. + + Attributes: + uris (MutableSequence[str]): + The URIs of linked VPN tunnel resources. + site_to_site_data_transfer (bool): + A value that controls whether site-to-site data transfer is + enabled for these resources. Data transfer is available only + in `supported + locations `__. + vpc_network (str): Output only. The VPC network where these VPN tunnels are located. """ @@ -886,6 +1828,28 @@ class LinkedRouterApplianceInstances(proto.Message): ) +class LinkedVpcNetwork(proto.Message): + r"""An existing VPC network. + + Attributes: + uri (str): + Required. The URI of the VPC network + resource. + exclude_export_ranges (MutableSequence[str]): + Optional. IP ranges encompassing the subnets + to be excluded from peering. + """ + + uri: str = proto.Field( + proto.STRING, + number=1, + ) + exclude_export_ranges: MutableSequence[str] = proto.RepeatedField( + proto.STRING, + number=2, + ) + + class RouterApplianceInstance(proto.Message): r"""A router appliance instance is a Compute Engine virtual machine (VM) instance that acts as a BGP speaker. A router @@ -924,4 +1888,145 @@ class LocationMetadata(proto.Message): ) +class NextHopVpcNetwork(proto.Message): + r""" + + Attributes: + uri (str): + The URI of the VPC network resource + """ + + uri: str = proto.Field( + proto.STRING, + number=1, + ) + + +class SpokeSummary(proto.Message): + r"""Summarizes information about the spokes associated with a + hub. The summary includes a count of spokes according to type + and according to state. If any spokes are inactive, the summary + also lists the reasons they are inactive, including a count for + each reason. + + Attributes: + spoke_type_counts (MutableSequence[google.cloud.networkconnectivity_v1.types.SpokeSummary.SpokeTypeCount]): + Output only. Counts the number of spokes of + each type that are associated with a specific + hub. + spoke_state_counts (MutableSequence[google.cloud.networkconnectivity_v1.types.SpokeSummary.SpokeStateCount]): + Output only. Counts the number of spokes that + are in each state and associated with a given + hub. + spoke_state_reason_counts (MutableSequence[google.cloud.networkconnectivity_v1.types.SpokeSummary.SpokeStateReasonCount]): + Output only. Counts the number of spokes that + are inactive for each possible reason and + associated with a given hub. + """ + + class SpokeTypeCount(proto.Message): + r"""The number of spokes of a given type that are associated + with a specific hub. The type indicates what kind of resource is + associated with the spoke. + + Attributes: + spoke_type (google.cloud.networkconnectivity_v1.types.SpokeType): + Output only. The type of the spokes. + count (int): + Output only. The total number of spokes of + this type that are associated with the hub. + """ + + spoke_type: "SpokeType" = proto.Field( + proto.ENUM, + number=1, + enum="SpokeType", + ) + count: int = proto.Field( + proto.INT64, + number=2, + ) + + class SpokeStateCount(proto.Message): + r"""The number of spokes that are in a particular state + and associated with a given hub. + + Attributes: + state (google.cloud.networkconnectivity_v1.types.State): + Output only. The state of the spokes. + count (int): + Output only. The total number of spokes that + are in this state and associated with a given + hub. + """ + + state: "State" = proto.Field( + proto.ENUM, + number=1, + enum="State", + ) + count: int = proto.Field( + proto.INT64, + number=2, + ) + + class SpokeStateReasonCount(proto.Message): + r"""The number of spokes in the hub that are inactive for this + reason. + + Attributes: + state_reason_code (google.cloud.networkconnectivity_v1.types.Spoke.StateReason.Code): + Output only. The reason that a spoke is + inactive. + count (int): + Output only. The total number of spokes that + are inactive for a particular reason and + associated with a given hub. + """ + + state_reason_code: "Spoke.StateReason.Code" = proto.Field( + proto.ENUM, + number=1, + enum="Spoke.StateReason.Code", + ) + count: int = proto.Field( + proto.INT64, + number=2, + ) + + spoke_type_counts: MutableSequence[SpokeTypeCount] = proto.RepeatedField( + proto.MESSAGE, + number=1, + message=SpokeTypeCount, + ) + spoke_state_counts: MutableSequence[SpokeStateCount] = proto.RepeatedField( + proto.MESSAGE, + number=2, + message=SpokeStateCount, + ) + spoke_state_reason_counts: MutableSequence[ + SpokeStateReasonCount + ] = proto.RepeatedField( + proto.MESSAGE, + number=3, + message=SpokeStateReasonCount, + ) + + +class GetGroupRequest(proto.Message): + r"""The request for + [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. + + Attributes: + name (str): + Required. The name of the route table + resource. + """ + + name: str = proto.Field( + proto.STRING, + number=1, + ) + + __all__ = tuple(sorted(__protobuf__.manifest)) diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/policy_based_routing.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/policy_based_routing.py index cfc2d3235577..dc25b464140e 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/policy_based_routing.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/policy_based_routing.py @@ -101,7 +101,7 @@ class PolicyBasedRoute(proto.Message): the lowest-numbered priority value wins. The default value is 1000. The priority value must be from 1 to - 65535, inclusive. + 65535, inclusive. warnings (MutableSequence[google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Warnings]): Output only. If potential misconfigurations are detected for this route, this field will be diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1alpha1/gapic_version.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1alpha1/gapic_version.py index d90ede644a70..360a0d13ebdd 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1alpha1/gapic_version.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1alpha1/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "2.1.0" # {x-release-please-version} +__version__ = "0.0.0" # {x-release-please-version} diff --git a/packages/google-cloud-network-connectivity/noxfile.py b/packages/google-cloud-network-connectivity/noxfile.py index 9a2acd8b6787..be54712bfa8f 100644 --- a/packages/google-cloud-network-connectivity/noxfile.py +++ b/packages/google-cloud-network-connectivity/noxfile.py @@ -46,7 +46,7 @@ UNIT_TEST_EXTRAS = [] UNIT_TEST_EXTRAS_BY_PYTHON = {} -SYSTEM_TEST_PYTHON_VERSIONS = [] +SYSTEM_TEST_PYTHON_VERSIONS = ["3.8", "3.9", "3.10", "3.11"] SYSTEM_TEST_STANDARD_DEPENDENCIES = [ "mock", "pytest", @@ -405,24 +405,3 @@ def prerelease_deps(session): session.run("python", "-c", "import google.auth; print(google.auth.__version__)") session.run("py.test", "tests/unit") - - system_test_path = os.path.join("tests", "system.py") - system_test_folder_path = os.path.join("tests", "system") - - # Only run system tests if found. - if os.path.exists(system_test_path): - session.run( - "py.test", - "--verbose", - f"--junitxml=system_{session.python}_sponge_log.xml", - system_test_path, - *session.posargs, - ) - if os.path.exists(system_test_folder_path): - session.run( - "py.test", - "--verbose", - f"--junitxml=system_{session.python}_sponge_log.xml", - system_test_folder_path, - *session.posargs, - ) diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_async.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_async.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_async.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_async.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_sync.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_sync.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_sync.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_group_sync.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_async.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_async.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_async.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_async.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_sync.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_sync.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_sync.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_sync.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_async.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_async.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_async.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_async.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_sync.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_sync.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_sync.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_get_route_table_sync.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_async.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_async.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_async.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_async.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_sync.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_sync.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_sync.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_groups_sync.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_async.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_async.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_async.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_async.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_async.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_async.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_async.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_async.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_sync.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_sync.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_sync.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_list_routes_sync.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py diff --git a/owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py b/packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py similarity index 100% rename from owl-bot-staging/google-cloud-network-connectivity/v1/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py rename to packages/google-cloud-network-connectivity/samples/generated_samples/networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py diff --git a/packages/google-cloud-network-connectivity/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json b/packages/google-cloud-network-connectivity/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json index 015b349e9599..62ba18e54b67 100644 --- a/packages/google-cloud-network-connectivity/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json +++ b/packages/google-cloud-network-connectivity/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1.json @@ -8,9 +8,178 @@ ], "language": "PYTHON", "name": "google-cloud-network-connectivity", - "version": "2.1.0" + "version": "0.1.0" }, "snippets": [ + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.accept_hub_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "AcceptHubSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "spoke_uri", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "accept_hub_spoke" + }, + "description": "Sample for AcceptHubSpoke", + "file": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_AcceptHubSpoke_async", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.accept_hub_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "AcceptHubSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.AcceptHubSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "spoke_uri", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "accept_hub_spoke" + }, + "description": "Sample for AcceptHubSpoke", + "file": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_AcceptHubSpoke_sync", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_accept_hub_spoke_sync.py" + }, { "canonical": true, "clientMethod": { @@ -695,19 +864,19 @@ "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", "shortName": "HubServiceAsyncClient" }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_hub", + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_group", "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetHub", + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetGroup", "service": { "fullName": "google.cloud.networkconnectivity.v1.HubService", "shortName": "HubService" }, - "shortName": "GetHub" + "shortName": "GetGroup" }, "parameters": [ { "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetHubRequest" + "type": "google.cloud.networkconnectivity_v1.types.GetGroupRequest" }, { "name": "name", @@ -726,14 +895,14 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.cloud.networkconnectivity_v1.types.Hub", - "shortName": "get_hub" + "resultType": "google.cloud.networkconnectivity_v1.types.Group", + "shortName": "get_group" }, - "description": "Sample for GetHub", - "file": "networkconnectivity_v1_generated_hub_service_get_hub_async.py", + "description": "Sample for GetGroup", + "file": "networkconnectivity_v1_generated_hub_service_get_group_async.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetHub_async", + "regionTag": "networkconnectivity_v1_generated_HubService_GetGroup_async", "segments": [ { "end": 51, @@ -766,7 +935,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "networkconnectivity_v1_generated_hub_service_get_hub_async.py" + "title": "networkconnectivity_v1_generated_hub_service_get_group_async.py" }, { "canonical": true, @@ -775,19 +944,19 @@ "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", "shortName": "HubServiceClient" }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_hub", + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_group", "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetHub", + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetGroup", "service": { "fullName": "google.cloud.networkconnectivity.v1.HubService", "shortName": "HubService" }, - "shortName": "GetHub" + "shortName": "GetGroup" }, "parameters": [ { "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetHubRequest" + "type": "google.cloud.networkconnectivity_v1.types.GetGroupRequest" }, { "name": "name", @@ -806,14 +975,14 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.cloud.networkconnectivity_v1.types.Hub", - "shortName": "get_hub" + "resultType": "google.cloud.networkconnectivity_v1.types.Group", + "shortName": "get_group" }, - "description": "Sample for GetHub", - "file": "networkconnectivity_v1_generated_hub_service_get_hub_sync.py", + "description": "Sample for GetGroup", + "file": "networkconnectivity_v1_generated_hub_service_get_group_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetHub_sync", + "regionTag": "networkconnectivity_v1_generated_HubService_GetGroup_sync", "segments": [ { "end": 51, @@ -846,7 +1015,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "networkconnectivity_v1_generated_hub_service_get_hub_sync.py" + "title": "networkconnectivity_v1_generated_hub_service_get_group_sync.py" }, { "canonical": true, @@ -856,19 +1025,19 @@ "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", "shortName": "HubServiceAsyncClient" }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_spoke", + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_hub", "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetSpoke", + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetHub", "service": { "fullName": "google.cloud.networkconnectivity.v1.HubService", "shortName": "HubService" }, - "shortName": "GetSpoke" + "shortName": "GetHub" }, "parameters": [ { "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetSpokeRequest" + "type": "google.cloud.networkconnectivity_v1.types.GetHubRequest" }, { "name": "name", @@ -887,14 +1056,14 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.cloud.networkconnectivity_v1.types.Spoke", - "shortName": "get_spoke" + "resultType": "google.cloud.networkconnectivity_v1.types.Hub", + "shortName": "get_hub" }, - "description": "Sample for GetSpoke", - "file": "networkconnectivity_v1_generated_hub_service_get_spoke_async.py", + "description": "Sample for GetHub", + "file": "networkconnectivity_v1_generated_hub_service_get_hub_async.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetSpoke_async", + "regionTag": "networkconnectivity_v1_generated_HubService_GetHub_async", "segments": [ { "end": 51, @@ -927,7 +1096,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "networkconnectivity_v1_generated_hub_service_get_spoke_async.py" + "title": "networkconnectivity_v1_generated_hub_service_get_hub_async.py" }, { "canonical": true, @@ -936,19 +1105,19 @@ "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", "shortName": "HubServiceClient" }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_spoke", + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_hub", "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.GetSpoke", + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetHub", "service": { "fullName": "google.cloud.networkconnectivity.v1.HubService", "shortName": "HubService" }, - "shortName": "GetSpoke" + "shortName": "GetHub" }, "parameters": [ { "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.GetSpokeRequest" + "type": "google.cloud.networkconnectivity_v1.types.GetHubRequest" }, { "name": "name", @@ -967,14 +1136,14 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.cloud.networkconnectivity_v1.types.Spoke", - "shortName": "get_spoke" + "resultType": "google.cloud.networkconnectivity_v1.types.Hub", + "shortName": "get_hub" }, - "description": "Sample for GetSpoke", - "file": "networkconnectivity_v1_generated_hub_service_get_spoke_sync.py", + "description": "Sample for GetHub", + "file": "networkconnectivity_v1_generated_hub_service_get_hub_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_GetSpoke_sync", + "regionTag": "networkconnectivity_v1_generated_HubService_GetHub_sync", "segments": [ { "end": 51, @@ -1007,7 +1176,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "networkconnectivity_v1_generated_hub_service_get_spoke_sync.py" + "title": "networkconnectivity_v1_generated_hub_service_get_hub_sync.py" }, { "canonical": true, @@ -1017,22 +1186,22 @@ "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", "shortName": "HubServiceAsyncClient" }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_hubs", + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_route_table", "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubs", + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRouteTable", "service": { "fullName": "google.cloud.networkconnectivity.v1.HubService", "shortName": "HubService" }, - "shortName": "ListHubs" + "shortName": "GetRouteTable" }, "parameters": [ { "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListHubsRequest" + "type": "google.cloud.networkconnectivity_v1.types.GetRouteTableRequest" }, { - "name": "parent", + "name": "name", "type": "str" }, { @@ -1048,22 +1217,22 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsAsyncPager", - "shortName": "list_hubs" + "resultType": "google.cloud.networkconnectivity_v1.types.RouteTable", + "shortName": "get_route_table" }, - "description": "Sample for ListHubs", - "file": "networkconnectivity_v1_generated_hub_service_list_hubs_async.py", + "description": "Sample for GetRouteTable", + "file": "networkconnectivity_v1_generated_hub_service_get_route_table_async.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListHubs_async", + "regionTag": "networkconnectivity_v1_generated_HubService_GetRouteTable_async", "segments": [ { - "end": 52, + "end": 51, "start": 27, "type": "FULL" }, { - "end": 52, + "end": 51, "start": 27, "type": "SHORT" }, @@ -1083,12 +1252,12 @@ "type": "REQUEST_EXECUTION" }, { - "end": 53, + "end": 52, "start": 49, "type": "RESPONSE_HANDLING" } ], - "title": "networkconnectivity_v1_generated_hub_service_list_hubs_async.py" + "title": "networkconnectivity_v1_generated_hub_service_get_route_table_async.py" }, { "canonical": true, @@ -1097,22 +1266,22 @@ "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", "shortName": "HubServiceClient" }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_hubs", + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_route_table", "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubs", + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRouteTable", "service": { "fullName": "google.cloud.networkconnectivity.v1.HubService", "shortName": "HubService" }, - "shortName": "ListHubs" + "shortName": "GetRouteTable" }, "parameters": [ { "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListHubsRequest" + "type": "google.cloud.networkconnectivity_v1.types.GetRouteTableRequest" }, { - "name": "parent", + "name": "name", "type": "str" }, { @@ -1128,22 +1297,22 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsPager", - "shortName": "list_hubs" + "resultType": "google.cloud.networkconnectivity_v1.types.RouteTable", + "shortName": "get_route_table" }, - "description": "Sample for ListHubs", - "file": "networkconnectivity_v1_generated_hub_service_list_hubs_sync.py", + "description": "Sample for GetRouteTable", + "file": "networkconnectivity_v1_generated_hub_service_get_route_table_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListHubs_sync", + "regionTag": "networkconnectivity_v1_generated_HubService_GetRouteTable_sync", "segments": [ { - "end": 52, + "end": 51, "start": 27, "type": "FULL" }, { - "end": 52, + "end": 51, "start": 27, "type": "SHORT" }, @@ -1163,12 +1332,12 @@ "type": "REQUEST_EXECUTION" }, { - "end": 53, + "end": 52, "start": 49, "type": "RESPONSE_HANDLING" } ], - "title": "networkconnectivity_v1_generated_hub_service_list_hubs_sync.py" + "title": "networkconnectivity_v1_generated_hub_service_get_route_table_sync.py" }, { "canonical": true, @@ -1178,22 +1347,22 @@ "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", "shortName": "HubServiceAsyncClient" }, - "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_spokes", + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_route", "method": { - "fullName": "google.cloud.networkconnectivity.v1.HubService.ListSpokes", + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRoute", "service": { "fullName": "google.cloud.networkconnectivity.v1.HubService", "shortName": "HubService" }, - "shortName": "ListSpokes" + "shortName": "GetRoute" }, "parameters": [ { "name": "request", - "type": "google.cloud.networkconnectivity_v1.types.ListSpokesRequest" + "type": "google.cloud.networkconnectivity_v1.types.GetRouteRequest" }, { - "name": "parent", + "name": "name", "type": "str" }, { @@ -1209,14 +1378,1141 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesAsyncPager", - "shortName": "list_spokes" + "resultType": "google.cloud.networkconnectivity_v1.types.Route", + "shortName": "get_route" }, - "description": "Sample for ListSpokes", - "file": "networkconnectivity_v1_generated_hub_service_list_spokes_async.py", + "description": "Sample for GetRoute", + "file": "networkconnectivity_v1_generated_hub_service_get_route_async.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "networkconnectivity_v1_generated_HubService_ListSpokes_async", + "regionTag": "networkconnectivity_v1_generated_HubService_GetRoute_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_route_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_route", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetRoute", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetRoute" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetRouteRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Route", + "shortName": "get_route" + }, + "description": "Sample for GetRoute", + "file": "networkconnectivity_v1_generated_hub_service_get_route_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetRoute_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_route_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.get_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Spoke", + "shortName": "get_spoke" + }, + "description": "Sample for GetSpoke", + "file": "networkconnectivity_v1_generated_hub_service_get_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetSpoke_async", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.get_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.GetSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "GetSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.GetSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.types.Spoke", + "shortName": "get_spoke" + }, + "description": "Sample for GetSpoke", + "file": "networkconnectivity_v1_generated_hub_service_get_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_GetSpoke_sync", + "segments": [ + { + "end": 51, + "start": 27, + "type": "FULL" + }, + { + "end": 51, + "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": 52, + "start": 49, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_get_spoke_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_groups", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListGroups", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListGroups" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListGroupsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsAsyncPager", + "shortName": "list_groups" + }, + "description": "Sample for ListGroups", + "file": "networkconnectivity_v1_generated_hub_service_list_groups_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListGroups_async", + "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": "networkconnectivity_v1_generated_hub_service_list_groups_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_groups", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListGroups", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListGroups" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListGroupsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListGroupsPager", + "shortName": "list_groups" + }, + "description": "Sample for ListGroups", + "file": "networkconnectivity_v1_generated_hub_service_list_groups_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListGroups_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": "networkconnectivity_v1_generated_hub_service_list_groups_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_hub_spokes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubSpokes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubSpokes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesAsyncPager", + "shortName": "list_hub_spokes" + }, + "description": "Sample for ListHubSpokes", + "file": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListHubSpokes_async", + "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": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_hub_spokes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubSpokes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubSpokes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListHubSpokesRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubSpokesPager", + "shortName": "list_hub_spokes" + }, + "description": "Sample for ListHubSpokes", + "file": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListHubSpokes_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": "networkconnectivity_v1_generated_hub_service_list_hub_spokes_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_hubs", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubs", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubs" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListHubsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsAsyncPager", + "shortName": "list_hubs" + }, + "description": "Sample for ListHubs", + "file": "networkconnectivity_v1_generated_hub_service_list_hubs_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListHubs_async", + "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": "networkconnectivity_v1_generated_hub_service_list_hubs_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_hubs", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListHubs", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListHubs" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListHubsRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListHubsPager", + "shortName": "list_hubs" + }, + "description": "Sample for ListHubs", + "file": "networkconnectivity_v1_generated_hub_service_list_hubs_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListHubs_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": "networkconnectivity_v1_generated_hub_service_list_hubs_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_route_tables", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRouteTables", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListRouteTables" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesAsyncPager", + "shortName": "list_route_tables" + }, + "description": "Sample for ListRouteTables", + "file": "networkconnectivity_v1_generated_hub_service_list_route_tables_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListRouteTables_async", + "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": "networkconnectivity_v1_generated_hub_service_list_route_tables_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_route_tables", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRouteTables", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListRouteTables" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListRouteTablesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRouteTablesPager", + "shortName": "list_route_tables" + }, + "description": "Sample for ListRouteTables", + "file": "networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListRouteTables_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": "networkconnectivity_v1_generated_hub_service_list_route_tables_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_routes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRoutes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListRoutes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListRoutesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesAsyncPager", + "shortName": "list_routes" + }, + "description": "Sample for ListRoutes", + "file": "networkconnectivity_v1_generated_hub_service_list_routes_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListRoutes_async", + "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": "networkconnectivity_v1_generated_hub_service_list_routes_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.list_routes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListRoutes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListRoutes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListRoutesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListRoutesPager", + "shortName": "list_routes" + }, + "description": "Sample for ListRoutes", + "file": "networkconnectivity_v1_generated_hub_service_list_routes_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListRoutes_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": "networkconnectivity_v1_generated_hub_service_list_routes_sync.py" + }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.list_spokes", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.ListSpokes", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "ListSpokes" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.ListSpokesRequest" + }, + { + "name": "parent", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.cloud.networkconnectivity_v1.services.hub_service.pagers.ListSpokesAsyncPager", + "shortName": "list_spokes" + }, + "description": "Sample for ListSpokes", + "file": "networkconnectivity_v1_generated_hub_service_list_spokes_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_ListSpokes_async", "segments": [ { "end": 52, @@ -1331,6 +2627,175 @@ ], "title": "networkconnectivity_v1_generated_hub_service_list_spokes_sync.py" }, + { + "canonical": true, + "clientMethod": { + "async": true, + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient", + "shortName": "HubServiceAsyncClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceAsyncClient.reject_hub_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "RejectHubSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "spoke_uri", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation_async.AsyncOperation", + "shortName": "reject_hub_spoke" + }, + "description": "Sample for RejectHubSpoke", + "file": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_RejectHubSpoke_async", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_async.py" + }, + { + "canonical": true, + "clientMethod": { + "client": { + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient", + "shortName": "HubServiceClient" + }, + "fullName": "google.cloud.networkconnectivity_v1.HubServiceClient.reject_hub_spoke", + "method": { + "fullName": "google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke", + "service": { + "fullName": "google.cloud.networkconnectivity.v1.HubService", + "shortName": "HubService" + }, + "shortName": "RejectHubSpoke" + }, + "parameters": [ + { + "name": "request", + "type": "google.cloud.networkconnectivity_v1.types.RejectHubSpokeRequest" + }, + { + "name": "name", + "type": "str" + }, + { + "name": "spoke_uri", + "type": "str" + }, + { + "name": "retry", + "type": "google.api_core.retry.Retry" + }, + { + "name": "timeout", + "type": "float" + }, + { + "name": "metadata", + "type": "Sequence[Tuple[str, str]" + } + ], + "resultType": "google.api_core.operation.Operation", + "shortName": "reject_hub_spoke" + }, + "description": "Sample for RejectHubSpoke", + "file": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py", + "language": "PYTHON", + "origin": "API_DEFINITION", + "regionTag": "networkconnectivity_v1_generated_HubService_RejectHubSpoke_sync", + "segments": [ + { + "end": 56, + "start": 27, + "type": "FULL" + }, + { + "end": 56, + "start": 27, + "type": "SHORT" + }, + { + "end": 40, + "start": 38, + "type": "CLIENT_INITIALIZATION" + }, + { + "end": 46, + "start": 41, + "type": "REQUEST_INITIALIZATION" + }, + { + "end": 53, + "start": 47, + "type": "REQUEST_EXECUTION" + }, + { + "end": 57, + "start": 54, + "type": "RESPONSE_HANDLING" + } + ], + "title": "networkconnectivity_v1_generated_hub_service_reject_hub_spoke_sync.py" + }, { "canonical": true, "clientMethod": { diff --git a/packages/google-cloud-network-connectivity/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json b/packages/google-cloud-network-connectivity/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json index 070163e0a904..7d9f482d0d17 100644 --- a/packages/google-cloud-network-connectivity/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json +++ b/packages/google-cloud-network-connectivity/samples/generated_samples/snippet_metadata_google.cloud.networkconnectivity.v1alpha1.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-network-connectivity", - "version": "2.1.0" + "version": "0.1.0" }, "snippets": [ { diff --git a/packages/google-cloud-network-connectivity/scripts/fixup_networkconnectivity_v1_keywords.py b/packages/google-cloud-network-connectivity/scripts/fixup_networkconnectivity_v1_keywords.py index ce00b9bcc0cd..3399ba0a311e 100644 --- a/packages/google-cloud-network-connectivity/scripts/fixup_networkconnectivity_v1_keywords.py +++ b/packages/google-cloud-network-connectivity/scripts/fixup_networkconnectivity_v1_keywords.py @@ -39,18 +39,27 @@ def partition( class networkconnectivityCallTransformer(cst.CSTTransformer): CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata') METHOD_TO_PARAMS: Dict[str, Tuple[str]] = { + 'accept_hub_spoke': ('name', 'spoke_uri', 'request_id', ), 'create_hub': ('parent', 'hub_id', 'hub', 'request_id', ), 'create_policy_based_route': ('parent', 'policy_based_route_id', 'policy_based_route', 'request_id', ), 'create_spoke': ('parent', 'spoke_id', 'spoke', 'request_id', ), 'delete_hub': ('name', 'request_id', ), 'delete_policy_based_route': ('name', 'request_id', ), 'delete_spoke': ('name', 'request_id', ), + 'get_group': ('name', ), 'get_hub': ('name', ), 'get_policy_based_route': ('name', ), + 'get_route': ('name', ), + 'get_route_table': ('name', ), 'get_spoke': ('name', ), + 'list_groups': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), 'list_hubs': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'list_hub_spokes': ('name', 'spoke_locations', 'page_size', 'page_token', 'filter', 'order_by', 'view', ), 'list_policy_based_routes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'list_routes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'list_route_tables': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), 'list_spokes': ('parent', 'page_size', 'page_token', 'filter', 'order_by', ), + 'reject_hub_spoke': ('name', 'spoke_uri', 'request_id', 'details', ), 'update_hub': ('hub', 'update_mask', 'request_id', ), 'update_spoke': ('spoke', 'update_mask', 'request_id', ), } diff --git a/packages/google-cloud-network-connectivity/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py b/packages/google-cloud-network-connectivity/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py index f3c5f84be2c2..d84e61e36055 100644 --- a/packages/google-cloud-network-connectivity/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py +++ b/packages/google-cloud-network-connectivity/tests/unit/gapic/networkconnectivity_v1/test_hub_service.py @@ -1127,6 +1127,7 @@ def test_get_hub(request_type, transport: str = "grpc"): description="description_value", unique_id="unique_id_value", state=hub.State.CREATING, + route_tables=["route_tables_value"], ) response = client.get_hub(request) @@ -1141,6 +1142,7 @@ def test_get_hub(request_type, transport: str = "grpc"): assert response.description == "description_value" assert response.unique_id == "unique_id_value" assert response.state == hub.State.CREATING + assert response.route_tables == ["route_tables_value"] def test_get_hub_empty_call(): @@ -1181,6 +1183,7 @@ async def test_get_hub_async( description="description_value", unique_id="unique_id_value", state=hub.State.CREATING, + route_tables=["route_tables_value"], ) ) response = await client.get_hub(request) @@ -1196,6 +1199,7 @@ async def test_get_hub_async( assert response.description == "description_value" assert response.unique_id == "unique_id_value" assert response.state == hub.State.CREATING + assert response.route_tables == ["route_tables_value"] @pytest.mark.asyncio @@ -2053,11 +2057,11 @@ async def test_delete_hub_flattened_error_async(): @pytest.mark.parametrize( "request_type", [ - hub.ListSpokesRequest, + hub.ListHubSpokesRequest, dict, ], ) -def test_list_spokes(request_type, transport: str = "grpc"): +def test_list_hub_spokes(request_type, transport: str = "grpc"): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2068,26 +2072,26 @@ def test_list_spokes(request_type, transport: str = "grpc"): request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + with mock.patch.object(type(client.transport.list_hub_spokes), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = hub.ListSpokesResponse( + call.return_value = hub.ListHubSpokesResponse( next_page_token="next_page_token_value", unreachable=["unreachable_value"], ) - response = client.list_spokes(request) + response = client.list_hub_spokes(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListSpokesRequest() + assert args[0] == hub.ListHubSpokesRequest() # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListSpokesPager) + assert isinstance(response, pagers.ListHubSpokesPager) assert response.next_page_token == "next_page_token_value" assert response.unreachable == ["unreachable_value"] -def test_list_spokes_empty_call(): +def test_list_hub_spokes_empty_call(): # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. client = HubServiceClient( @@ -2096,16 +2100,16 @@ def test_list_spokes_empty_call(): ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: - client.list_spokes() + with mock.patch.object(type(client.transport.list_hub_spokes), "__call__") as call: + client.list_hub_spokes() call.assert_called() _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListSpokesRequest() + assert args[0] == hub.ListHubSpokesRequest() @pytest.mark.asyncio -async def test_list_spokes_async( - transport: str = "grpc_asyncio", request_type=hub.ListSpokesRequest +async def test_list_hub_spokes_async( + transport: str = "grpc_asyncio", request_type=hub.ListHubSpokesRequest ): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), @@ -2117,47 +2121,47 @@ async def test_list_spokes_async( request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + with mock.patch.object(type(client.transport.list_hub_spokes), "__call__") as call: # Designate an appropriate return value for the call. call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( next_page_token="next_page_token_value", unreachable=["unreachable_value"], ) ) - response = await client.list_spokes(request) + response = await client.list_hub_spokes(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) _, args, _ = call.mock_calls[0] - assert args[0] == hub.ListSpokesRequest() + assert args[0] == hub.ListHubSpokesRequest() # Establish that the response is the type that we expect. - assert isinstance(response, pagers.ListSpokesAsyncPager) + assert isinstance(response, pagers.ListHubSpokesAsyncPager) assert response.next_page_token == "next_page_token_value" assert response.unreachable == ["unreachable_value"] @pytest.mark.asyncio -async def test_list_spokes_async_from_dict(): - await test_list_spokes_async(request_type=dict) +async def test_list_hub_spokes_async_from_dict(): + await test_list_hub_spokes_async(request_type=dict) -def test_list_spokes_field_headers(): +def test_list_hub_spokes_field_headers(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.ListSpokesRequest() + request = hub.ListHubSpokesRequest() - request.parent = "parent_value" + request.name = "name_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: - call.return_value = hub.ListSpokesResponse() - client.list_spokes(request) + with mock.patch.object(type(client.transport.list_hub_spokes), "__call__") as call: + call.return_value = hub.ListHubSpokesResponse() + client.list_hub_spokes(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 @@ -2168,28 +2172,28 @@ def test_list_spokes_field_headers(): _, _, kw = call.mock_calls[0] assert ( "x-goog-request-params", - "parent=parent_value", + "name=name_value", ) in kw["metadata"] @pytest.mark.asyncio -async def test_list_spokes_field_headers_async(): +async def test_list_hub_spokes_field_headers_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.ListSpokesRequest() + request = hub.ListHubSpokesRequest() - request.parent = "parent_value" + request.name = "name_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + with mock.patch.object(type(client.transport.list_hub_spokes), "__call__") as call: call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - hub.ListSpokesResponse() + hub.ListHubSpokesResponse() ) - await client.list_spokes(request) + await client.list_hub_spokes(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) @@ -2200,35 +2204,35 @@ async def test_list_spokes_field_headers_async(): _, _, kw = call.mock_calls[0] assert ( "x-goog-request-params", - "parent=parent_value", + "name=name_value", ) in kw["metadata"] -def test_list_spokes_flattened(): +def test_list_hub_spokes_flattened(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + with mock.patch.object(type(client.transport.list_hub_spokes), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = hub.ListSpokesResponse() + call.return_value = hub.ListHubSpokesResponse() # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - client.list_spokes( - parent="parent_value", + client.list_hub_spokes( + name="name_value", ) # Establish that the underlying call was made with the expected # request object values. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = "parent_value" + arg = args[0].name + mock_val = "name_value" assert arg == mock_val -def test_list_spokes_flattened_error(): +def test_list_hub_spokes_flattened_error(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -2236,43 +2240,43 @@ def test_list_spokes_flattened_error(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.list_spokes( - hub.ListSpokesRequest(), - parent="parent_value", + client.list_hub_spokes( + hub.ListHubSpokesRequest(), + name="name_value", ) @pytest.mark.asyncio -async def test_list_spokes_flattened_async(): +async def test_list_hub_spokes_flattened_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + with mock.patch.object(type(client.transport.list_hub_spokes), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = hub.ListSpokesResponse() + call.return_value = hub.ListHubSpokesResponse() call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - hub.ListSpokesResponse() + hub.ListHubSpokesResponse() ) # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - response = await client.list_spokes( - parent="parent_value", + response = await client.list_hub_spokes( + name="name_value", ) # Establish that the underlying call was made with the expected # request object values. assert len(call.mock_calls) _, args, _ = call.mock_calls[0] - arg = args[0].parent - mock_val = "parent_value" + arg = args[0].name + mock_val = "name_value" assert arg == mock_val @pytest.mark.asyncio -async def test_list_spokes_flattened_error_async(): +async def test_list_hub_spokes_flattened_error_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -2280,23 +2284,23 @@ async def test_list_spokes_flattened_error_async(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - await client.list_spokes( - hub.ListSpokesRequest(), - parent="parent_value", + await client.list_hub_spokes( + hub.ListHubSpokesRequest(), + name="name_value", ) -def test_list_spokes_pager(transport_name: str = "grpc"): +def test_list_hub_spokes_pager(transport_name: str = "grpc"): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials, transport=transport_name, ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + with mock.patch.object(type(client.transport.list_hub_spokes), "__call__") as call: # Set the response to a series of pages. call.side_effect = ( - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), hub.Spoke(), @@ -2304,17 +2308,17 @@ def test_list_spokes_pager(transport_name: str = "grpc"): ], next_page_token="abc", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[], next_page_token="def", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), ], next_page_token="ghi", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), hub.Spoke(), @@ -2325,9 +2329,9 @@ def test_list_spokes_pager(transport_name: str = "grpc"): metadata = () metadata = tuple(metadata) + ( - gapic_v1.routing_header.to_grpc_metadata((("parent", ""),)), + gapic_v1.routing_header.to_grpc_metadata((("name", ""),)), ) - pager = client.list_spokes(request={}) + pager = client.list_hub_spokes(request={}) assert pager._metadata == metadata @@ -2336,17 +2340,17 @@ def test_list_spokes_pager(transport_name: str = "grpc"): assert all(isinstance(i, hub.Spoke) for i in results) -def test_list_spokes_pages(transport_name: str = "grpc"): +def test_list_hub_spokes_pages(transport_name: str = "grpc"): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials, transport=transport_name, ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + with mock.patch.object(type(client.transport.list_hub_spokes), "__call__") as call: # Set the response to a series of pages. call.side_effect = ( - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), hub.Spoke(), @@ -2354,17 +2358,17 @@ def test_list_spokes_pages(transport_name: str = "grpc"): ], next_page_token="abc", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[], next_page_token="def", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), ], next_page_token="ghi", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), hub.Spoke(), @@ -2372,24 +2376,24 @@ def test_list_spokes_pages(transport_name: str = "grpc"): ), RuntimeError, ) - pages = list(client.list_spokes(request={}).pages) + pages = list(client.list_hub_spokes(request={}).pages) for page_, token in zip(pages, ["abc", "def", "ghi", ""]): assert page_.raw_page.next_page_token == token @pytest.mark.asyncio -async def test_list_spokes_async_pager(): +async def test_list_hub_spokes_async_pager(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials, ) # Mock the actual call within the gRPC stub, and fake the request. with mock.patch.object( - type(client.transport.list_spokes), "__call__", new_callable=mock.AsyncMock + type(client.transport.list_hub_spokes), "__call__", new_callable=mock.AsyncMock ) as call: # Set the response to a series of pages. call.side_effect = ( - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), hub.Spoke(), @@ -2397,17 +2401,17 @@ async def test_list_spokes_async_pager(): ], next_page_token="abc", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[], next_page_token="def", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), ], next_page_token="ghi", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), hub.Spoke(), @@ -2415,7 +2419,7 @@ async def test_list_spokes_async_pager(): ), RuntimeError, ) - async_pager = await client.list_spokes( + async_pager = await client.list_hub_spokes( request={}, ) assert async_pager.next_page_token == "abc" @@ -2428,18 +2432,18 @@ async def test_list_spokes_async_pager(): @pytest.mark.asyncio -async def test_list_spokes_async_pages(): +async def test_list_hub_spokes_async_pages(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials, ) # Mock the actual call within the gRPC stub, and fake the request. with mock.patch.object( - type(client.transport.list_spokes), "__call__", new_callable=mock.AsyncMock + type(client.transport.list_hub_spokes), "__call__", new_callable=mock.AsyncMock ) as call: # Set the response to a series of pages. call.side_effect = ( - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), hub.Spoke(), @@ -2447,17 +2451,17 @@ async def test_list_spokes_async_pages(): ], next_page_token="abc", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[], next_page_token="def", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), ], next_page_token="ghi", ), - hub.ListSpokesResponse( + hub.ListHubSpokesResponse( spokes=[ hub.Spoke(), hub.Spoke(), @@ -2469,7 +2473,7 @@ async def test_list_spokes_async_pages(): # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 async for page_ in ( # pragma: no branch - await client.list_spokes(request={}) + await client.list_hub_spokes(request={}) ).pages: pages.append(page_) for page_, token in zip(pages, ["abc", "def", "ghi", ""]): @@ -2479,11 +2483,11 @@ async def test_list_spokes_async_pages(): @pytest.mark.parametrize( "request_type", [ - hub.GetSpokeRequest, + hub.ListSpokesRequest, dict, ], ) -def test_get_spoke(request_type, transport: str = "grpc"): +def test_list_spokes(request_type, transport: str = "grpc"): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2494,32 +2498,26 @@ def test_get_spoke(request_type, transport: str = "grpc"): request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = hub.Spoke( - name="name_value", - description="description_value", - hub="hub_value", - unique_id="unique_id_value", - state=hub.State.CREATING, + call.return_value = hub.ListSpokesResponse( + next_page_token="next_page_token_value", + unreachable=["unreachable_value"], ) - response = client.get_spoke(request) + response = client.list_spokes(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetSpokeRequest() + assert args[0] == hub.ListSpokesRequest() # Establish that the response is the type that we expect. - assert isinstance(response, hub.Spoke) - assert response.name == "name_value" - assert response.description == "description_value" - assert response.hub == "hub_value" - assert response.unique_id == "unique_id_value" - assert response.state == hub.State.CREATING + assert isinstance(response, pagers.ListSpokesPager) + assert response.next_page_token == "next_page_token_value" + assert response.unreachable == ["unreachable_value"] -def test_get_spoke_empty_call(): +def test_list_spokes_empty_call(): # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. client = HubServiceClient( @@ -2528,16 +2526,16 @@ def test_get_spoke_empty_call(): ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: - client.get_spoke() + with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + client.list_spokes() call.assert_called() _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetSpokeRequest() + assert args[0] == hub.ListSpokesRequest() @pytest.mark.asyncio -async def test_get_spoke_async( - transport: str = "grpc_asyncio", request_type=hub.GetSpokeRequest +async def test_list_spokes_async( + transport: str = "grpc_asyncio", request_type=hub.ListSpokesRequest ): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), @@ -2549,53 +2547,47 @@ async def test_get_spoke_async( request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: # Designate an appropriate return value for the call. call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - hub.Spoke( - name="name_value", - description="description_value", - hub="hub_value", - unique_id="unique_id_value", - state=hub.State.CREATING, + hub.ListSpokesResponse( + next_page_token="next_page_token_value", + unreachable=["unreachable_value"], ) ) - response = await client.get_spoke(request) + response = await client.list_spokes(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) _, args, _ = call.mock_calls[0] - assert args[0] == hub.GetSpokeRequest() + assert args[0] == hub.ListSpokesRequest() # Establish that the response is the type that we expect. - assert isinstance(response, hub.Spoke) - assert response.name == "name_value" - assert response.description == "description_value" - assert response.hub == "hub_value" - assert response.unique_id == "unique_id_value" - assert response.state == hub.State.CREATING + assert isinstance(response, pagers.ListSpokesAsyncPager) + assert response.next_page_token == "next_page_token_value" + assert response.unreachable == ["unreachable_value"] @pytest.mark.asyncio -async def test_get_spoke_async_from_dict(): - await test_get_spoke_async(request_type=dict) +async def test_list_spokes_async_from_dict(): + await test_list_spokes_async(request_type=dict) -def test_get_spoke_field_headers(): +def test_list_spokes_field_headers(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.GetSpokeRequest() + request = hub.ListSpokesRequest() - request.name = "name_value" + request.parent = "parent_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: - call.return_value = hub.Spoke() - client.get_spoke(request) + with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + call.return_value = hub.ListSpokesResponse() + client.list_spokes(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 @@ -2606,26 +2598,28 @@ def test_get_spoke_field_headers(): _, _, kw = call.mock_calls[0] assert ( "x-goog-request-params", - "name=name_value", + "parent=parent_value", ) in kw["metadata"] @pytest.mark.asyncio -async def test_get_spoke_field_headers_async(): +async def test_list_spokes_field_headers_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.GetSpokeRequest() + request = hub.ListSpokesRequest() - request.name = "name_value" + request.parent = "parent_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) - await client.get_spoke(request) + with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + hub.ListSpokesResponse() + ) + await client.list_spokes(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) @@ -2636,35 +2630,35 @@ async def test_get_spoke_field_headers_async(): _, _, kw = call.mock_calls[0] assert ( "x-goog-request-params", - "name=name_value", + "parent=parent_value", ) in kw["metadata"] -def test_get_spoke_flattened(): +def test_list_spokes_flattened(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = hub.Spoke() + call.return_value = hub.ListSpokesResponse() # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - client.get_spoke( - name="name_value", + client.list_spokes( + parent="parent_value", ) # Establish that the underlying call was made with the expected # request object values. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = "name_value" + arg = args[0].parent + mock_val = "parent_value" assert arg == mock_val -def test_get_spoke_flattened_error(): +def test_list_spokes_flattened_error(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -2672,41 +2666,43 @@ def test_get_spoke_flattened_error(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.get_spoke( - hub.GetSpokeRequest(), - name="name_value", + client.list_spokes( + hub.ListSpokesRequest(), + parent="parent_value", ) @pytest.mark.asyncio -async def test_get_spoke_flattened_async(): +async def test_list_spokes_flattened_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = hub.Spoke() + call.return_value = hub.ListSpokesResponse() - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + hub.ListSpokesResponse() + ) # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - response = await client.get_spoke( - name="name_value", + response = await client.list_spokes( + parent="parent_value", ) # Establish that the underlying call was made with the expected # request object values. assert len(call.mock_calls) _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = "name_value" + arg = args[0].parent + mock_val = "parent_value" assert arg == mock_val @pytest.mark.asyncio -async def test_get_spoke_flattened_error_async(): +async def test_list_spokes_flattened_error_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -2714,45 +2710,2596 @@ async def test_get_spoke_flattened_error_async(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - await client.get_spoke( - hub.GetSpokeRequest(), - name="name_value", + await client.list_spokes( + hub.ListSpokesRequest(), + parent="parent_value", ) -@pytest.mark.parametrize( - "request_type", - [ - hub.CreateSpokeRequest, - dict, - ], -) -def test_create_spoke(request_type, transport: str = "grpc"): +def test_list_spokes_pager(transport_name: str = "grpc"): client = HubServiceClient( - credentials=ga_credentials.AnonymousCredentials(), - transport=transport, - ) + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token="abc", + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token="def", + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token="ghi", + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", ""),)), + ) + pager = client.list_spokes(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Spoke) for i in results) + + +def test_list_spokes_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_spokes), "__call__") as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token="abc", + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token="def", + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token="ghi", + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + pages = list(client.list_spokes(request={}).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +@pytest.mark.asyncio +async def test_list_spokes_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), "__call__", new_callable=mock.AsyncMock + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token="abc", + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token="def", + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token="ghi", + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_spokes( + request={}, + ) + assert async_pager.next_page_token == "abc" + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Spoke) for i in responses) + + +@pytest.mark.asyncio +async def test_list_spokes_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_spokes), "__call__", new_callable=mock.AsyncMock + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + hub.Spoke(), + ], + next_page_token="abc", + ), + hub.ListSpokesResponse( + spokes=[], + next_page_token="def", + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + ], + next_page_token="ghi", + ), + hub.ListSpokesResponse( + spokes=[ + hub.Spoke(), + hub.Spoke(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_spokes(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +@pytest.mark.parametrize( + "request_type", + [ + hub.GetSpokeRequest, + dict, + ], +) +def test_get_spoke(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Spoke( + name="name_value", + description="description_value", + hub="hub_value", + group="group_value", + unique_id="unique_id_value", + state=hub.State.CREATING, + spoke_type=hub.SpokeType.VPN_TUNNEL, + ) + response = client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Spoke) + assert response.name == "name_value" + assert response.description == "description_value" + assert response.hub == "hub_value" + assert response.group == "group_value" + assert response.unique_id == "unique_id_value" + assert response.state == hub.State.CREATING + assert response.spoke_type == hub.SpokeType.VPN_TUNNEL + + +def test_get_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc", + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + client.get_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetSpokeRequest() + + +@pytest.mark.asyncio +async def test_get_spoke_async( + transport: str = "grpc_asyncio", request_type=hub.GetSpokeRequest +): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + hub.Spoke( + name="name_value", + description="description_value", + hub="hub_value", + group="group_value", + unique_id="unique_id_value", + state=hub.State.CREATING, + spoke_type=hub.SpokeType.VPN_TUNNEL, + ) + ) + response = await client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Spoke) + assert response.name == "name_value" + assert response.description == "description_value" + assert response.hub == "hub_value" + assert response.group == "group_value" + assert response.unique_id == "unique_id_value" + assert response.state == hub.State.CREATING + assert response.spoke_type == hub.SpokeType.VPN_TUNNEL + + +@pytest.mark.asyncio +async def test_get_spoke_async_from_dict(): + await test_get_spoke_async(request_type=dict) + + +def test_get_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetSpokeRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + call.return_value = hub.Spoke() + client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_get_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetSpokeRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) + await client.get_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +def test_get_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Spoke() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_spoke( + name="name_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + + +def test_get_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_spoke( + hub.GetSpokeRequest(), + name="name_value", + ) + + +@pytest.mark.asyncio +async def test_get_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Spoke() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Spoke()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_spoke( + name="name_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + + +@pytest.mark.asyncio +async def test_get_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_spoke( + hub.GetSpokeRequest(), + name="name_value", + ) + + +@pytest.mark.parametrize( + "request_type", + [ + hub.CreateSpokeRequest, + dict, + ], +) +def test_create_spoke(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/spam") + response = client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.CreateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_create_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc", + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + client.create_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.CreateSpokeRequest() + + +@pytest.mark.asyncio +async def test_create_spoke_async( + transport: str = "grpc_asyncio", request_type=hub.CreateSpokeRequest +): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + response = await client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.CreateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_create_spoke_async_from_dict(): + await test_create_spoke_async(request_type=dict) + + +def test_create_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.CreateSpokeRequest() + + request.parent = "parent_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + call.return_value = operations_pb2.Operation(name="operations/op") + client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "parent=parent_value", + ) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_create_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.CreateSpokeRequest() + + request.parent = "parent_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/op") + ) + await client.create_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "parent=parent_value", + ) in kw["metadata"] + + +def test_create_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.create_spoke( + parent="parent_value", + spoke=hub.Spoke(name="name_value"), + spoke_id="spoke_id_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = "parent_value" + assert arg == mock_val + arg = args[0].spoke + mock_val = hub.Spoke(name="name_value") + assert arg == mock_val + arg = args[0].spoke_id + mock_val = "spoke_id_value" + assert arg == mock_val + + +def test_create_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.create_spoke( + hub.CreateSpokeRequest(), + parent="parent_value", + spoke=hub.Spoke(name="name_value"), + spoke_id="spoke_id_value", + ) + + +@pytest.mark.asyncio +async def test_create_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.create_spoke( + parent="parent_value", + spoke=hub.Spoke(name="name_value"), + spoke_id="spoke_id_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = "parent_value" + assert arg == mock_val + arg = args[0].spoke + mock_val = hub.Spoke(name="name_value") + assert arg == mock_val + arg = args[0].spoke_id + mock_val = "spoke_id_value" + assert arg == mock_val + + +@pytest.mark.asyncio +async def test_create_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.create_spoke( + hub.CreateSpokeRequest(), + parent="parent_value", + spoke=hub.Spoke(name="name_value"), + spoke_id="spoke_id_value", + ) + + +@pytest.mark.parametrize( + "request_type", + [ + hub.UpdateSpokeRequest, + dict, + ], +) +def test_update_spoke(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/spam") + response = client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.UpdateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_update_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc", + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + client.update_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.UpdateSpokeRequest() + + +@pytest.mark.asyncio +async def test_update_spoke_async( + transport: str = "grpc_asyncio", request_type=hub.UpdateSpokeRequest +): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + response = await client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.UpdateSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_update_spoke_async_from_dict(): + await test_update_spoke_async(request_type=dict) + + +def test_update_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.UpdateSpokeRequest() + + request.spoke.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + call.return_value = operations_pb2.Operation(name="operations/op") + client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "spoke.name=name_value", + ) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_update_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.UpdateSpokeRequest() + + request.spoke.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/op") + ) + await client.update_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "spoke.name=name_value", + ) in kw["metadata"] + + +def test_update_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.update_spoke( + spoke=hub.Spoke(name="name_value"), + update_mask=field_mask_pb2.FieldMask(paths=["paths_value"]), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].spoke + mock_val = hub.Spoke(name="name_value") + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=["paths_value"]) + assert arg == mock_val + + +def test_update_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.update_spoke( + hub.UpdateSpokeRequest(), + spoke=hub.Spoke(name="name_value"), + update_mask=field_mask_pb2.FieldMask(paths=["paths_value"]), + ) + + +@pytest.mark.asyncio +async def test_update_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.update_spoke( + spoke=hub.Spoke(name="name_value"), + update_mask=field_mask_pb2.FieldMask(paths=["paths_value"]), + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].spoke + mock_val = hub.Spoke(name="name_value") + assert arg == mock_val + arg = args[0].update_mask + mock_val = field_mask_pb2.FieldMask(paths=["paths_value"]) + assert arg == mock_val + + +@pytest.mark.asyncio +async def test_update_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.update_spoke( + hub.UpdateSpokeRequest(), + spoke=hub.Spoke(name="name_value"), + update_mask=field_mask_pb2.FieldMask(paths=["paths_value"]), + ) + + +@pytest.mark.parametrize( + "request_type", + [ + hub.RejectHubSpokeRequest, + dict, + ], +) +def test_reject_hub_spoke(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.reject_hub_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/spam") + response = client.reject_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.RejectHubSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_reject_hub_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc", + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.reject_hub_spoke), "__call__") as call: + client.reject_hub_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.RejectHubSpokeRequest() + + +@pytest.mark.asyncio +async def test_reject_hub_spoke_async( + transport: str = "grpc_asyncio", request_type=hub.RejectHubSpokeRequest +): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.reject_hub_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + response = await client.reject_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.RejectHubSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_reject_hub_spoke_async_from_dict(): + await test_reject_hub_spoke_async(request_type=dict) + + +def test_reject_hub_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.RejectHubSpokeRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.reject_hub_spoke), "__call__") as call: + call.return_value = operations_pb2.Operation(name="operations/op") + client.reject_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_reject_hub_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.RejectHubSpokeRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.reject_hub_spoke), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/op") + ) + await client.reject_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +def test_reject_hub_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.reject_hub_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.reject_hub_spoke( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + arg = args[0].spoke_uri + mock_val = "spoke_uri_value" + assert arg == mock_val + + +def test_reject_hub_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.reject_hub_spoke( + hub.RejectHubSpokeRequest(), + name="name_value", + spoke_uri="spoke_uri_value", + ) + + +@pytest.mark.asyncio +async def test_reject_hub_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.reject_hub_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.reject_hub_spoke( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + arg = args[0].spoke_uri + mock_val = "spoke_uri_value" + assert arg == mock_val + + +@pytest.mark.asyncio +async def test_reject_hub_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.reject_hub_spoke( + hub.RejectHubSpokeRequest(), + name="name_value", + spoke_uri="spoke_uri_value", + ) + + +@pytest.mark.parametrize( + "request_type", + [ + hub.AcceptHubSpokeRequest, + dict, + ], +) +def test_accept_hub_spoke(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.accept_hub_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/spam") + response = client.accept_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.AcceptHubSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_accept_hub_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc", + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.accept_hub_spoke), "__call__") as call: + client.accept_hub_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.AcceptHubSpokeRequest() + + +@pytest.mark.asyncio +async def test_accept_hub_spoke_async( + transport: str = "grpc_asyncio", request_type=hub.AcceptHubSpokeRequest +): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.accept_hub_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + response = await client.accept_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.AcceptHubSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_accept_hub_spoke_async_from_dict(): + await test_accept_hub_spoke_async(request_type=dict) + + +def test_accept_hub_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.AcceptHubSpokeRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.accept_hub_spoke), "__call__") as call: + call.return_value = operations_pb2.Operation(name="operations/op") + client.accept_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_accept_hub_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.AcceptHubSpokeRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.accept_hub_spoke), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/op") + ) + await client.accept_hub_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +def test_accept_hub_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.accept_hub_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.accept_hub_spoke( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + arg = args[0].spoke_uri + mock_val = "spoke_uri_value" + assert arg == mock_val + + +def test_accept_hub_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.accept_hub_spoke( + hub.AcceptHubSpokeRequest(), + name="name_value", + spoke_uri="spoke_uri_value", + ) + + +@pytest.mark.asyncio +async def test_accept_hub_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.accept_hub_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.accept_hub_spoke( + name="name_value", + spoke_uri="spoke_uri_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + arg = args[0].spoke_uri + mock_val = "spoke_uri_value" + assert arg == mock_val + + +@pytest.mark.asyncio +async def test_accept_hub_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.accept_hub_spoke( + hub.AcceptHubSpokeRequest(), + name="name_value", + spoke_uri="spoke_uri_value", + ) + + +@pytest.mark.parametrize( + "request_type", + [ + hub.DeleteSpokeRequest, + dict, + ], +) +def test_delete_spoke(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/spam") + response = client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +def test_delete_spoke_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc", + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + client.delete_spoke() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteSpokeRequest() + + +@pytest.mark.asyncio +async def test_delete_spoke_async( + transport: str = "grpc_asyncio", request_type=hub.DeleteSpokeRequest +): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + response = await client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.DeleteSpokeRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, future.Future) + + +@pytest.mark.asyncio +async def test_delete_spoke_async_from_dict(): + await test_delete_spoke_async(request_type=dict) + + +def test_delete_spoke_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteSpokeRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + call.return_value = operations_pb2.Operation(name="operations/op") + client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_delete_spoke_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.DeleteSpokeRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/op") + ) + await client.delete_spoke(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +def test_delete_spoke_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.delete_spoke( + name="name_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + + +def test_delete_spoke_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.delete_spoke( + hub.DeleteSpokeRequest(), + name="name_value", + ) + + +@pytest.mark.asyncio +async def test_delete_spoke_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = operations_pb2.Operation(name="operations/op") + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + operations_pb2.Operation(name="operations/spam") + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.delete_spoke( + name="name_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + + +@pytest.mark.asyncio +async def test_delete_spoke_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.delete_spoke( + hub.DeleteSpokeRequest(), + name="name_value", + ) + + +@pytest.mark.parametrize( + "request_type", + [ + hub.GetRouteTableRequest, + dict, + ], +) +def test_get_route_table(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route_table), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.RouteTable( + name="name_value", + description="description_value", + uid="uid_value", + state=hub.State.CREATING, + ) + response = client.get_route_table(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteTableRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.RouteTable) + assert response.name == "name_value" + assert response.description == "description_value" + assert response.uid == "uid_value" + assert response.state == hub.State.CREATING + + +def test_get_route_table_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc", + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route_table), "__call__") as call: + client.get_route_table() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteTableRequest() + + +@pytest.mark.asyncio +async def test_get_route_table_async( + transport: str = "grpc_asyncio", request_type=hub.GetRouteTableRequest +): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route_table), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + hub.RouteTable( + name="name_value", + description="description_value", + uid="uid_value", + state=hub.State.CREATING, + ) + ) + response = await client.get_route_table(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteTableRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.RouteTable) + assert response.name == "name_value" + assert response.description == "description_value" + assert response.uid == "uid_value" + assert response.state == hub.State.CREATING + + +@pytest.mark.asyncio +async def test_get_route_table_async_from_dict(): + await test_get_route_table_async(request_type=dict) + + +def test_get_route_table_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetRouteTableRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route_table), "__call__") as call: + call.return_value = hub.RouteTable() + client.get_route_table(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_get_route_table_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetRouteTableRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route_table), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.RouteTable()) + await client.get_route_table(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +def test_get_route_table_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route_table), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.RouteTable() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_route_table( + name="name_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + + +def test_get_route_table_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_route_table( + hub.GetRouteTableRequest(), + name="name_value", + ) + + +@pytest.mark.asyncio +async def test_get_route_table_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route_table), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.RouteTable() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.RouteTable()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_route_table( + name="name_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + + +@pytest.mark.asyncio +async def test_get_route_table_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_route_table( + hub.GetRouteTableRequest(), + name="name_value", + ) + + +@pytest.mark.parametrize( + "request_type", + [ + hub.GetRouteRequest, + dict, + ], +) +def test_get_route(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Route( + name="name_value", + ip_cidr_range="ip_cidr_range_value", + type_=hub.RouteType.VPC_PRIMARY_SUBNET, + description="description_value", + uid="uid_value", + state=hub.State.CREATING, + spoke="spoke_value", + location="location_value", + ) + response = client.get_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Route) + assert response.name == "name_value" + assert response.ip_cidr_range == "ip_cidr_range_value" + assert response.type_ == hub.RouteType.VPC_PRIMARY_SUBNET + assert response.description == "description_value" + assert response.uid == "uid_value" + assert response.state == hub.State.CREATING + assert response.spoke == "spoke_value" + assert response.location == "location_value" + + +def test_get_route_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc", + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route), "__call__") as call: + client.get_route() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteRequest() + + +@pytest.mark.asyncio +async def test_get_route_async( + transport: str = "grpc_asyncio", request_type=hub.GetRouteRequest +): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + hub.Route( + name="name_value", + ip_cidr_range="ip_cidr_range_value", + type_=hub.RouteType.VPC_PRIMARY_SUBNET, + description="description_value", + uid="uid_value", + state=hub.State.CREATING, + spoke="spoke_value", + location="location_value", + ) + ) + response = await client.get_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.GetRouteRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, hub.Route) + assert response.name == "name_value" + assert response.ip_cidr_range == "ip_cidr_range_value" + assert response.type_ == hub.RouteType.VPC_PRIMARY_SUBNET + assert response.description == "description_value" + assert response.uid == "uid_value" + assert response.state == hub.State.CREATING + assert response.spoke == "spoke_value" + assert response.location == "location_value" + + +@pytest.mark.asyncio +async def test_get_route_async_from_dict(): + await test_get_route_async(request_type=dict) + + +def test_get_route_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetRouteRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route), "__call__") as call: + call.return_value = hub.Route() + client.get_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_get_route_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.GetRouteRequest() + + request.name = "name_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Route()) + await client.get_route(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "name=name_value", + ) in kw["metadata"] + + +def test_get_route_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Route() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.get_route( + name="name_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + + +def test_get_route_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.get_route( + hub.GetRouteRequest(), + name="name_value", + ) + + +@pytest.mark.asyncio +async def test_get_route_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.get_route), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.Route() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Route()) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.get_route( + name="name_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].name + mock_val = "name_value" + assert arg == mock_val + + +@pytest.mark.asyncio +async def test_get_route_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.get_route( + hub.GetRouteRequest(), + name="name_value", + ) + + +@pytest.mark.parametrize( + "request_type", + [ + hub.ListRoutesRequest, + dict, + ], +) +def test_list_routes(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_routes), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListRoutesResponse( + next_page_token="next_page_token_value", + unreachable=["unreachable_value"], + ) + response = client.list_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListRoutesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListRoutesPager) + assert response.next_page_token == "next_page_token_value" + assert response.unreachable == ["unreachable_value"] + + +def test_list_routes_empty_call(): + # This test is a coverage failsafe to make sure that totally empty calls, + # i.e. request == None and no flattened fields passed, work. + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport="grpc", + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_routes), "__call__") as call: + client.list_routes() + call.assert_called() + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListRoutesRequest() + + +@pytest.mark.asyncio +async def test_list_routes_async( + transport: str = "grpc_asyncio", request_type=hub.ListRoutesRequest +): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) + + # Everything is optional in proto3 as far as the runtime is concerned, + # and we are mocking out the actual API, so just send an empty request. + request = request_type() + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_routes), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + hub.ListRoutesResponse( + next_page_token="next_page_token_value", + unreachable=["unreachable_value"], + ) + ) + response = await client.list_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == hub.ListRoutesRequest() + + # Establish that the response is the type that we expect. + assert isinstance(response, pagers.ListRoutesAsyncPager) + assert response.next_page_token == "next_page_token_value" + assert response.unreachable == ["unreachable_value"] + + +@pytest.mark.asyncio +async def test_list_routes_async_from_dict(): + await test_list_routes_async(request_type=dict) + + +def test_list_routes_field_headers(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListRoutesRequest() + + request.parent = "parent_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_routes), "__call__") as call: + call.return_value = hub.ListRoutesResponse() + client.list_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "parent=parent_value", + ) in kw["metadata"] + + +@pytest.mark.asyncio +async def test_list_routes_field_headers_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Any value that is part of the HTTP/1.1 URI should be sent as + # a field header. Set these to a non-empty value. + request = hub.ListRoutesRequest() + + request.parent = "parent_value" + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_routes), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + hub.ListRoutesResponse() + ) + await client.list_routes(request) + + # Establish that the underlying gRPC stub method was called. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + assert args[0] == request + + # Establish that the field header was sent. + _, _, kw = call.mock_calls[0] + assert ( + "x-goog-request-params", + "parent=parent_value", + ) in kw["metadata"] + + +def test_list_routes_flattened(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_routes), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListRoutesResponse() + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + client.list_routes( + parent="parent_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) == 1 + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = "parent_value" + assert arg == mock_val + + +def test_list_routes_flattened_error(): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + client.list_routes( + hub.ListRoutesRequest(), + parent="parent_value", + ) + + +@pytest.mark.asyncio +async def test_list_routes_flattened_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_routes), "__call__") as call: + # Designate an appropriate return value for the call. + call.return_value = hub.ListRoutesResponse() + + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( + hub.ListRoutesResponse() + ) + # Call the method with a truthy value for each flattened field, + # using the keyword arguments to the method. + response = await client.list_routes( + parent="parent_value", + ) + + # Establish that the underlying call was made with the expected + # request object values. + assert len(call.mock_calls) + _, args, _ = call.mock_calls[0] + arg = args[0].parent + mock_val = "parent_value" + assert arg == mock_val + + +@pytest.mark.asyncio +async def test_list_routes_flattened_error_async(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials(), + ) + + # Attempting to call a method with both a request object and flattened + # fields is an error. + with pytest.raises(ValueError): + await client.list_routes( + hub.ListRoutesRequest(), + parent="parent_value", + ) + + +def test_list_routes_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_routes), "__call__") as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + hub.Route(), + ], + next_page_token="abc", + ), + hub.ListRoutesResponse( + routes=[], + next_page_token="def", + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + ], + next_page_token="ghi", + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", ""),)), + ) + pager = client.list_routes(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Route) for i in results) + + +def test_list_routes_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_routes), "__call__") as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + hub.Route(), + ], + next_page_token="abc", + ), + hub.ListRoutesResponse( + routes=[], + next_page_token="def", + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + ], + next_page_token="ghi", + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + ], + ), + RuntimeError, + ) + pages = list(client.list_routes(request={}).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +@pytest.mark.asyncio +async def test_list_routes_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), "__call__", new_callable=mock.AsyncMock + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + hub.Route(), + ], + next_page_token="abc", + ), + hub.ListRoutesResponse( + routes=[], + next_page_token="def", + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + ], + next_page_token="ghi", + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_routes( + request={}, + ) + assert async_pager.next_page_token == "abc" + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Route) for i in responses) + + +@pytest.mark.asyncio +async def test_list_routes_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_routes), "__call__", new_callable=mock.AsyncMock + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + hub.Route(), + ], + next_page_token="abc", + ), + hub.ListRoutesResponse( + routes=[], + next_page_token="def", + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + ], + next_page_token="ghi", + ), + hub.ListRoutesResponse( + routes=[ + hub.Route(), + hub.Route(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_routes(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +@pytest.mark.parametrize( + "request_type", + [ + hub.ListRouteTablesRequest, + dict, + ], +) +def test_list_route_tables(request_type, transport: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials(), + transport=transport, + ) # Everything is optional in proto3 as far as the runtime is concerned, # and we are mocking out the actual API, so just send an empty request. request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + with mock.patch.object( + type(client.transport.list_route_tables), "__call__" + ) as call: # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name="operations/spam") - response = client.create_spoke(request) + call.return_value = hub.ListRouteTablesResponse( + next_page_token="next_page_token_value", + unreachable=["unreachable_value"], + ) + response = client.list_route_tables(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] - assert args[0] == hub.CreateSpokeRequest() + assert args[0] == hub.ListRouteTablesRequest() # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) + assert isinstance(response, pagers.ListRouteTablesPager) + assert response.next_page_token == "next_page_token_value" + assert response.unreachable == ["unreachable_value"] -def test_create_spoke_empty_call(): +def test_list_route_tables_empty_call(): # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. client = HubServiceClient( @@ -2761,16 +5308,18 @@ def test_create_spoke_empty_call(): ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: - client.create_spoke() + with mock.patch.object( + type(client.transport.list_route_tables), "__call__" + ) as call: + client.list_route_tables() call.assert_called() _, args, _ = call.mock_calls[0] - assert args[0] == hub.CreateSpokeRequest() + assert args[0] == hub.ListRouteTablesRequest() @pytest.mark.asyncio -async def test_create_spoke_async( - transport: str = "grpc_asyncio", request_type=hub.CreateSpokeRequest +async def test_list_route_tables_async( + transport: str = "grpc_asyncio", request_type=hub.ListRouteTablesRequest ): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), @@ -2782,42 +5331,51 @@ async def test_create_spoke_async( request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + with mock.patch.object( + type(client.transport.list_route_tables), "__call__" + ) as call: # Designate an appropriate return value for the call. call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name="operations/spam") + hub.ListRouteTablesResponse( + next_page_token="next_page_token_value", + unreachable=["unreachable_value"], + ) ) - response = await client.create_spoke(request) + response = await client.list_route_tables(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) _, args, _ = call.mock_calls[0] - assert args[0] == hub.CreateSpokeRequest() + assert args[0] == hub.ListRouteTablesRequest() # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) + assert isinstance(response, pagers.ListRouteTablesAsyncPager) + assert response.next_page_token == "next_page_token_value" + assert response.unreachable == ["unreachable_value"] @pytest.mark.asyncio -async def test_create_spoke_async_from_dict(): - await test_create_spoke_async(request_type=dict) +async def test_list_route_tables_async_from_dict(): + await test_list_route_tables_async(request_type=dict) -def test_create_spoke_field_headers(): +def test_list_route_tables_field_headers(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.CreateSpokeRequest() + request = hub.ListRouteTablesRequest() request.parent = "parent_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: - call.return_value = operations_pb2.Operation(name="operations/op") - client.create_spoke(request) + with mock.patch.object( + type(client.transport.list_route_tables), "__call__" + ) as call: + call.return_value = hub.ListRouteTablesResponse() + client.list_route_tables(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 @@ -2833,23 +5391,25 @@ def test_create_spoke_field_headers(): @pytest.mark.asyncio -async def test_create_spoke_field_headers_async(): +async def test_list_route_tables_field_headers_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.CreateSpokeRequest() + request = hub.ListRouteTablesRequest() request.parent = "parent_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + with mock.patch.object( + type(client.transport.list_route_tables), "__call__" + ) as call: call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name="operations/op") + hub.ListRouteTablesResponse() ) - await client.create_spoke(request) + await client.list_route_tables(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) @@ -2864,21 +5424,21 @@ async def test_create_spoke_field_headers_async(): ) in kw["metadata"] -def test_create_spoke_flattened(): +def test_list_route_tables_flattened(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + with mock.patch.object( + type(client.transport.list_route_tables), "__call__" + ) as call: # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name="operations/op") + call.return_value = hub.ListRouteTablesResponse() # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - client.create_spoke( + client.list_route_tables( parent="parent_value", - spoke=hub.Spoke(name="name_value"), - spoke_id="spoke_id_value", ) # Establish that the underlying call was made with the expected @@ -2888,15 +5448,9 @@ def test_create_spoke_flattened(): arg = args[0].parent mock_val = "parent_value" assert arg == mock_val - arg = args[0].spoke - mock_val = hub.Spoke(name="name_value") - assert arg == mock_val - arg = args[0].spoke_id - mock_val = "spoke_id_value" - assert arg == mock_val -def test_create_spoke_flattened_error(): +def test_list_route_tables_flattened_error(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -2904,34 +5458,32 @@ def test_create_spoke_flattened_error(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.create_spoke( - hub.CreateSpokeRequest(), + client.list_route_tables( + hub.ListRouteTablesRequest(), parent="parent_value", - spoke=hub.Spoke(name="name_value"), - spoke_id="spoke_id_value", ) @pytest.mark.asyncio -async def test_create_spoke_flattened_async(): +async def test_list_route_tables_flattened_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.create_spoke), "__call__") as call: + with mock.patch.object( + type(client.transport.list_route_tables), "__call__" + ) as call: # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name="operations/op") + call.return_value = hub.ListRouteTablesResponse() call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name="operations/spam") + hub.ListRouteTablesResponse() ) # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - response = await client.create_spoke( + response = await client.list_route_tables( parent="parent_value", - spoke=hub.Spoke(name="name_value"), - spoke_id="spoke_id_value", ) # Establish that the underlying call was made with the expected @@ -2941,16 +5493,10 @@ async def test_create_spoke_flattened_async(): arg = args[0].parent mock_val = "parent_value" assert arg == mock_val - arg = args[0].spoke - mock_val = hub.Spoke(name="name_value") - assert arg == mock_val - arg = args[0].spoke_id - mock_val = "spoke_id_value" - assert arg == mock_val @pytest.mark.asyncio -async def test_create_spoke_flattened_error_async(): +async def test_list_route_tables_flattened_error_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -2958,22 +5504,218 @@ async def test_create_spoke_flattened_error_async(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - await client.create_spoke( - hub.CreateSpokeRequest(), + await client.list_route_tables( + hub.ListRouteTablesRequest(), parent="parent_value", - spoke=hub.Spoke(name="name_value"), - spoke_id="spoke_id_value", ) +def test_list_route_tables_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), "__call__" + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + hub.RouteTable(), + ], + next_page_token="abc", + ), + hub.ListRouteTablesResponse( + route_tables=[], + next_page_token="def", + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + ], + next_page_token="ghi", + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", ""),)), + ) + pager = client.list_route_tables(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.RouteTable) for i in results) + + +def test_list_route_tables_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), "__call__" + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + hub.RouteTable(), + ], + next_page_token="abc", + ), + hub.ListRouteTablesResponse( + route_tables=[], + next_page_token="def", + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + ], + next_page_token="ghi", + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + ], + ), + RuntimeError, + ) + pages = list(client.list_route_tables(request={}).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +@pytest.mark.asyncio +async def test_list_route_tables_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + "__call__", + new_callable=mock.AsyncMock, + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + hub.RouteTable(), + ], + next_page_token="abc", + ), + hub.ListRouteTablesResponse( + route_tables=[], + next_page_token="def", + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + ], + next_page_token="ghi", + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_route_tables( + request={}, + ) + assert async_pager.next_page_token == "abc" + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.RouteTable) for i in responses) + + +@pytest.mark.asyncio +async def test_list_route_tables_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_route_tables), + "__call__", + new_callable=mock.AsyncMock, + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + hub.RouteTable(), + ], + next_page_token="abc", + ), + hub.ListRouteTablesResponse( + route_tables=[], + next_page_token="def", + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + ], + next_page_token="ghi", + ), + hub.ListRouteTablesResponse( + route_tables=[ + hub.RouteTable(), + hub.RouteTable(), + ], + ), + RuntimeError, + ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_route_tables(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + @pytest.mark.parametrize( "request_type", [ - hub.UpdateSpokeRequest, + hub.GetGroupRequest, dict, ], ) -def test_update_spoke(request_type, transport: str = "grpc"): +def test_get_group(request_type, transport: str = "grpc"): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -2984,21 +5726,30 @@ def test_update_spoke(request_type, transport: str = "grpc"): request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.get_group), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name="operations/spam") - response = client.update_spoke(request) + call.return_value = hub.Group( + name="name_value", + description="description_value", + uid="uid_value", + state=hub.State.CREATING, + ) + response = client.get_group(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] - assert args[0] == hub.UpdateSpokeRequest() + assert args[0] == hub.GetGroupRequest() # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) + assert isinstance(response, hub.Group) + assert response.name == "name_value" + assert response.description == "description_value" + assert response.uid == "uid_value" + assert response.state == hub.State.CREATING -def test_update_spoke_empty_call(): +def test_get_group_empty_call(): # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. client = HubServiceClient( @@ -3007,16 +5758,16 @@ def test_update_spoke_empty_call(): ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: - client.update_spoke() + with mock.patch.object(type(client.transport.get_group), "__call__") as call: + client.get_group() call.assert_called() _, args, _ = call.mock_calls[0] - assert args[0] == hub.UpdateSpokeRequest() + assert args[0] == hub.GetGroupRequest() @pytest.mark.asyncio -async def test_update_spoke_async( - transport: str = "grpc_asyncio", request_type=hub.UpdateSpokeRequest +async def test_get_group_async( + transport: str = "grpc_asyncio", request_type=hub.GetGroupRequest ): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), @@ -3028,42 +5779,51 @@ async def test_update_spoke_async( request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.get_group), "__call__") as call: # Designate an appropriate return value for the call. call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name="operations/spam") + hub.Group( + name="name_value", + description="description_value", + uid="uid_value", + state=hub.State.CREATING, + ) ) - response = await client.update_spoke(request) + response = await client.get_group(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) _, args, _ = call.mock_calls[0] - assert args[0] == hub.UpdateSpokeRequest() + assert args[0] == hub.GetGroupRequest() # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) + assert isinstance(response, hub.Group) + assert response.name == "name_value" + assert response.description == "description_value" + assert response.uid == "uid_value" + assert response.state == hub.State.CREATING @pytest.mark.asyncio -async def test_update_spoke_async_from_dict(): - await test_update_spoke_async(request_type=dict) +async def test_get_group_async_from_dict(): + await test_get_group_async(request_type=dict) -def test_update_spoke_field_headers(): +def test_get_group_field_headers(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.UpdateSpokeRequest() + request = hub.GetGroupRequest() - request.spoke.name = "name_value" + request.name = "name_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: - call.return_value = operations_pb2.Operation(name="operations/op") - client.update_spoke(request) + with mock.patch.object(type(client.transport.get_group), "__call__") as call: + call.return_value = hub.Group() + client.get_group(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 @@ -3074,28 +5834,26 @@ def test_update_spoke_field_headers(): _, _, kw = call.mock_calls[0] assert ( "x-goog-request-params", - "spoke.name=name_value", + "name=name_value", ) in kw["metadata"] @pytest.mark.asyncio -async def test_update_spoke_field_headers_async(): +async def test_get_group_field_headers_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.UpdateSpokeRequest() + request = hub.GetGroupRequest() - request.spoke.name = "name_value" + request.name = "name_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name="operations/op") - ) - await client.update_spoke(request) + with mock.patch.object(type(client.transport.get_group), "__call__") as call: + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Group()) + await client.get_group(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) @@ -3106,39 +5864,35 @@ async def test_update_spoke_field_headers_async(): _, _, kw = call.mock_calls[0] assert ( "x-goog-request-params", - "spoke.name=name_value", + "name=name_value", ) in kw["metadata"] -def test_update_spoke_flattened(): +def test_get_group_flattened(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.get_group), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name="operations/op") + call.return_value = hub.Group() # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - client.update_spoke( - spoke=hub.Spoke(name="name_value"), - update_mask=field_mask_pb2.FieldMask(paths=["paths_value"]), + client.get_group( + name="name_value", ) # Establish that the underlying call was made with the expected # request object values. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] - arg = args[0].spoke - mock_val = hub.Spoke(name="name_value") - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=["paths_value"]) + arg = args[0].name + mock_val = "name_value" assert arg == mock_val -def test_update_spoke_flattened_error(): +def test_get_group_flattened_error(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -3146,48 +5900,41 @@ def test_update_spoke_flattened_error(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.update_spoke( - hub.UpdateSpokeRequest(), - spoke=hub.Spoke(name="name_value"), - update_mask=field_mask_pb2.FieldMask(paths=["paths_value"]), + client.get_group( + hub.GetGroupRequest(), + name="name_value", ) @pytest.mark.asyncio -async def test_update_spoke_flattened_async(): +async def test_get_group_flattened_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.update_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.get_group), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name="operations/op") + call.return_value = hub.Group() - call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name="operations/spam") - ) + call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(hub.Group()) # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - response = await client.update_spoke( - spoke=hub.Spoke(name="name_value"), - update_mask=field_mask_pb2.FieldMask(paths=["paths_value"]), + response = await client.get_group( + name="name_value", ) # Establish that the underlying call was made with the expected # request object values. assert len(call.mock_calls) _, args, _ = call.mock_calls[0] - arg = args[0].spoke - mock_val = hub.Spoke(name="name_value") - assert arg == mock_val - arg = args[0].update_mask - mock_val = field_mask_pb2.FieldMask(paths=["paths_value"]) + arg = args[0].name + mock_val = "name_value" assert arg == mock_val @pytest.mark.asyncio -async def test_update_spoke_flattened_error_async(): +async def test_get_group_flattened_error_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -3195,21 +5942,20 @@ async def test_update_spoke_flattened_error_async(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - await client.update_spoke( - hub.UpdateSpokeRequest(), - spoke=hub.Spoke(name="name_value"), - update_mask=field_mask_pb2.FieldMask(paths=["paths_value"]), + await client.get_group( + hub.GetGroupRequest(), + name="name_value", ) @pytest.mark.parametrize( "request_type", [ - hub.DeleteSpokeRequest, + hub.ListGroupsRequest, dict, ], ) -def test_delete_spoke(request_type, transport: str = "grpc"): +def test_list_groups(request_type, transport: str = "grpc"): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), transport=transport, @@ -3220,21 +5966,26 @@ def test_delete_spoke(request_type, transport: str = "grpc"): request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.list_groups), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name="operations/spam") - response = client.delete_spoke(request) + call.return_value = hub.ListGroupsResponse( + next_page_token="next_page_token_value", + unreachable=["unreachable_value"], + ) + response = client.list_groups(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteSpokeRequest() + assert args[0] == hub.ListGroupsRequest() # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) + assert isinstance(response, pagers.ListGroupsPager) + assert response.next_page_token == "next_page_token_value" + assert response.unreachable == ["unreachable_value"] -def test_delete_spoke_empty_call(): +def test_list_groups_empty_call(): # This test is a coverage failsafe to make sure that totally empty calls, # i.e. request == None and no flattened fields passed, work. client = HubServiceClient( @@ -3243,16 +5994,16 @@ def test_delete_spoke_empty_call(): ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: - client.delete_spoke() + with mock.patch.object(type(client.transport.list_groups), "__call__") as call: + client.list_groups() call.assert_called() _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteSpokeRequest() + assert args[0] == hub.ListGroupsRequest() @pytest.mark.asyncio -async def test_delete_spoke_async( - transport: str = "grpc_asyncio", request_type=hub.DeleteSpokeRequest +async def test_list_groups_async( + transport: str = "grpc_asyncio", request_type=hub.ListGroupsRequest ): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), @@ -3264,42 +6015,47 @@ async def test_delete_spoke_async( request = request_type() # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.list_groups), "__call__") as call: # Designate an appropriate return value for the call. call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name="operations/spam") + hub.ListGroupsResponse( + next_page_token="next_page_token_value", + unreachable=["unreachable_value"], + ) ) - response = await client.delete_spoke(request) + response = await client.list_groups(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) _, args, _ = call.mock_calls[0] - assert args[0] == hub.DeleteSpokeRequest() + assert args[0] == hub.ListGroupsRequest() # Establish that the response is the type that we expect. - assert isinstance(response, future.Future) + assert isinstance(response, pagers.ListGroupsAsyncPager) + assert response.next_page_token == "next_page_token_value" + assert response.unreachable == ["unreachable_value"] @pytest.mark.asyncio -async def test_delete_spoke_async_from_dict(): - await test_delete_spoke_async(request_type=dict) +async def test_list_groups_async_from_dict(): + await test_list_groups_async(request_type=dict) -def test_delete_spoke_field_headers(): +def test_list_groups_field_headers(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.DeleteSpokeRequest() + request = hub.ListGroupsRequest() - request.name = "name_value" + request.parent = "parent_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: - call.return_value = operations_pb2.Operation(name="operations/op") - client.delete_spoke(request) + with mock.patch.object(type(client.transport.list_groups), "__call__") as call: + call.return_value = hub.ListGroupsResponse() + client.list_groups(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 @@ -3310,28 +6066,28 @@ def test_delete_spoke_field_headers(): _, _, kw = call.mock_calls[0] assert ( "x-goog-request-params", - "name=name_value", + "parent=parent_value", ) in kw["metadata"] @pytest.mark.asyncio -async def test_delete_spoke_field_headers_async(): +async def test_list_groups_field_headers_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Any value that is part of the HTTP/1.1 URI should be sent as # a field header. Set these to a non-empty value. - request = hub.DeleteSpokeRequest() + request = hub.ListGroupsRequest() - request.name = "name_value" + request.parent = "parent_value" # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.list_groups), "__call__") as call: call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name="operations/op") + hub.ListGroupsResponse() ) - await client.delete_spoke(request) + await client.list_groups(request) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) @@ -3342,35 +6098,35 @@ async def test_delete_spoke_field_headers_async(): _, _, kw = call.mock_calls[0] assert ( "x-goog-request-params", - "name=name_value", + "parent=parent_value", ) in kw["metadata"] -def test_delete_spoke_flattened(): +def test_list_groups_flattened(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.list_groups), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name="operations/op") + call.return_value = hub.ListGroupsResponse() # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - client.delete_spoke( - name="name_value", + client.list_groups( + parent="parent_value", ) # Establish that the underlying call was made with the expected # request object values. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = "name_value" + arg = args[0].parent + mock_val = "parent_value" assert arg == mock_val -def test_delete_spoke_flattened_error(): +def test_list_groups_flattened_error(): client = HubServiceClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -3378,43 +6134,43 @@ def test_delete_spoke_flattened_error(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - client.delete_spoke( - hub.DeleteSpokeRequest(), - name="name_value", + client.list_groups( + hub.ListGroupsRequest(), + parent="parent_value", ) @pytest.mark.asyncio -async def test_delete_spoke_flattened_async(): +async def test_list_groups_flattened_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) # Mock the actual call within the gRPC stub, and fake the request. - with mock.patch.object(type(client.transport.delete_spoke), "__call__") as call: + with mock.patch.object(type(client.transport.list_groups), "__call__") as call: # Designate an appropriate return value for the call. - call.return_value = operations_pb2.Operation(name="operations/op") + call.return_value = hub.ListGroupsResponse() call.return_value = grpc_helpers_async.FakeUnaryUnaryCall( - operations_pb2.Operation(name="operations/spam") + hub.ListGroupsResponse() ) # Call the method with a truthy value for each flattened field, # using the keyword arguments to the method. - response = await client.delete_spoke( - name="name_value", + response = await client.list_groups( + parent="parent_value", ) # Establish that the underlying call was made with the expected # request object values. assert len(call.mock_calls) _, args, _ = call.mock_calls[0] - arg = args[0].name - mock_val = "name_value" + arg = args[0].parent + mock_val = "parent_value" assert arg == mock_val @pytest.mark.asyncio -async def test_delete_spoke_flattened_error_async(): +async def test_list_groups_flattened_error_async(): client = HubServiceAsyncClient( credentials=ga_credentials.AnonymousCredentials(), ) @@ -3422,10 +6178,200 @@ async def test_delete_spoke_flattened_error_async(): # Attempting to call a method with both a request object and flattened # fields is an error. with pytest.raises(ValueError): - await client.delete_spoke( - hub.DeleteSpokeRequest(), - name="name_value", + await client.list_groups( + hub.ListGroupsRequest(), + parent="parent_value", + ) + + +def test_list_groups_pager(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_groups), "__call__") as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + hub.Group(), + ], + next_page_token="abc", + ), + hub.ListGroupsResponse( + groups=[], + next_page_token="def", + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + ], + next_page_token="ghi", + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + ], + ), + RuntimeError, + ) + + metadata = () + metadata = tuple(metadata) + ( + gapic_v1.routing_header.to_grpc_metadata((("parent", ""),)), + ) + pager = client.list_groups(request={}) + + assert pager._metadata == metadata + + results = list(pager) + assert len(results) == 6 + assert all(isinstance(i, hub.Group) for i in results) + + +def test_list_groups_pages(transport_name: str = "grpc"): + client = HubServiceClient( + credentials=ga_credentials.AnonymousCredentials, + transport=transport_name, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object(type(client.transport.list_groups), "__call__") as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + hub.Group(), + ], + next_page_token="abc", + ), + hub.ListGroupsResponse( + groups=[], + next_page_token="def", + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + ], + next_page_token="ghi", + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + ], + ), + RuntimeError, + ) + pages = list(client.list_groups(request={}).pages) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token + + +@pytest.mark.asyncio +async def test_list_groups_async_pager(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), "__call__", new_callable=mock.AsyncMock + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + hub.Group(), + ], + next_page_token="abc", + ), + hub.ListGroupsResponse( + groups=[], + next_page_token="def", + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + ], + next_page_token="ghi", + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + ], + ), + RuntimeError, + ) + async_pager = await client.list_groups( + request={}, + ) + assert async_pager.next_page_token == "abc" + responses = [] + async for response in async_pager: # pragma: no branch + responses.append(response) + + assert len(responses) == 6 + assert all(isinstance(i, hub.Group) for i in responses) + + +@pytest.mark.asyncio +async def test_list_groups_async_pages(): + client = HubServiceAsyncClient( + credentials=ga_credentials.AnonymousCredentials, + ) + + # Mock the actual call within the gRPC stub, and fake the request. + with mock.patch.object( + type(client.transport.list_groups), "__call__", new_callable=mock.AsyncMock + ) as call: + # Set the response to a series of pages. + call.side_effect = ( + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + hub.Group(), + ], + next_page_token="abc", + ), + hub.ListGroupsResponse( + groups=[], + next_page_token="def", + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + ], + next_page_token="ghi", + ), + hub.ListGroupsResponse( + groups=[ + hub.Group(), + hub.Group(), + ], + ), + RuntimeError, ) + pages = [] + # Workaround issue in python 3.9 related to code coverage by adding `# pragma: no branch` + # See https://github.com/googleapis/gapic-generator-python/pull/1174#issuecomment-1025132372 + async for page_ in ( # pragma: no branch + await client.list_groups(request={}) + ).pages: + pages.append(page_) + for page_, token in zip(pages, ["abc", "def", "ghi", ""]): + assert page_.raw_page.next_page_token == token def test_credentials_transport_error(): @@ -3570,11 +6516,20 @@ def test_hub_service_base_transport(): "create_hub", "update_hub", "delete_hub", + "list_hub_spokes", "list_spokes", "get_spoke", "create_spoke", "update_spoke", + "reject_hub_spoke", + "accept_hub_spoke", "delete_spoke", + "get_route_table", + "get_route", + "list_routes", + "list_route_tables", + "get_group", + "list_groups", "set_iam_policy", "get_iam_policy", "test_iam_permissions", @@ -3957,9 +6912,35 @@ def test_hub_service_grpc_lro_async_client(): assert transport.operations_client is transport.operations_client -def test_hub_path(): +def test_group_path(): project = "squid" hub = "clam" + group = "whelk" + expected = "projects/{project}/locations/global/hubs/{hub}/groups/{group}".format( + project=project, + hub=hub, + group=group, + ) + actual = HubServiceClient.group_path(project, hub, group) + assert expected == actual + + +def test_parse_group_path(): + expected = { + "project": "octopus", + "hub": "oyster", + "group": "nudibranch", + } + path = HubServiceClient.group_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_group_path(path) + assert expected == actual + + +def test_hub_path(): + project = "cuttlefish" + hub = "mussel" expected = "projects/{project}/locations/global/hubs/{hub}".format( project=project, hub=hub, @@ -3970,8 +6951,8 @@ def test_hub_path(): def test_parse_hub_path(): expected = { - "project": "whelk", - "hub": "octopus", + "project": "winkle", + "hub": "nautilus", } path = HubServiceClient.hub_path(**expected) @@ -3980,10 +6961,39 @@ def test_parse_hub_path(): assert expected == actual +def test_hub_route_path(): + project = "scallop" + hub = "abalone" + route_table = "squid" + route = "clam" + expected = "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}/routes/{route}".format( + project=project, + hub=hub, + route_table=route_table, + route=route, + ) + actual = HubServiceClient.hub_route_path(project, hub, route_table, route) + assert expected == actual + + +def test_parse_hub_route_path(): + expected = { + "project": "whelk", + "hub": "octopus", + "route_table": "oyster", + "route": "nudibranch", + } + path = HubServiceClient.hub_route_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_hub_route_path(path) + assert expected == actual + + def test_instance_path(): - project = "oyster" - zone = "nudibranch" - instance = "cuttlefish" + project = "cuttlefish" + zone = "mussel" + instance = "winkle" expected = "projects/{project}/zones/{zone}/instances/{instance}".format( project=project, zone=zone, @@ -3995,9 +7005,9 @@ def test_instance_path(): def test_parse_instance_path(): expected = { - "project": "mussel", - "zone": "winkle", - "instance": "nautilus", + "project": "nautilus", + "zone": "scallop", + "instance": "abalone", } path = HubServiceClient.instance_path(**expected) @@ -4007,9 +7017,9 @@ def test_parse_instance_path(): def test_interconnect_attachment_path(): - project = "scallop" - region = "abalone" - resource_id = "squid" + project = "squid" + region = "clam" + resource_id = "whelk" expected = "projects/{project}/regions/{region}/interconnectAttachments/{resource_id}".format( project=project, region=region, @@ -4021,9 +7031,9 @@ def test_interconnect_attachment_path(): def test_parse_interconnect_attachment_path(): expected = { - "project": "clam", - "region": "whelk", - "resource_id": "octopus", + "project": "octopus", + "region": "oyster", + "resource_id": "nudibranch", } path = HubServiceClient.interconnect_attachment_path(**expected) @@ -4033,8 +7043,8 @@ def test_parse_interconnect_attachment_path(): def test_network_path(): - project = "oyster" - resource_id = "nudibranch" + project = "cuttlefish" + resource_id = "mussel" expected = "projects/{project}/global/networks/{resource_id}".format( project=project, resource_id=resource_id, @@ -4045,8 +7055,8 @@ def test_network_path(): def test_parse_network_path(): expected = { - "project": "cuttlefish", - "resource_id": "mussel", + "project": "winkle", + "resource_id": "nautilus", } path = HubServiceClient.network_path(**expected) @@ -4055,10 +7065,36 @@ def test_parse_network_path(): assert expected == actual +def test_route_table_path(): + project = "scallop" + hub = "abalone" + route_table = "squid" + expected = "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}".format( + project=project, + hub=hub, + route_table=route_table, + ) + actual = HubServiceClient.route_table_path(project, hub, route_table) + assert expected == actual + + +def test_parse_route_table_path(): + expected = { + "project": "clam", + "hub": "whelk", + "route_table": "octopus", + } + path = HubServiceClient.route_table_path(**expected) + + # Check that the path construction is reversible. + actual = HubServiceClient.parse_route_table_path(path) + assert expected == actual + + def test_spoke_path(): - project = "winkle" - location = "nautilus" - spoke = "scallop" + project = "oyster" + location = "nudibranch" + spoke = "cuttlefish" expected = "projects/{project}/locations/{location}/spokes/{spoke}".format( project=project, location=location, @@ -4070,9 +7106,9 @@ def test_spoke_path(): def test_parse_spoke_path(): expected = { - "project": "abalone", - "location": "squid", - "spoke": "clam", + "project": "mussel", + "location": "winkle", + "spoke": "nautilus", } path = HubServiceClient.spoke_path(**expected) @@ -4082,9 +7118,9 @@ def test_parse_spoke_path(): def test_vpn_tunnel_path(): - project = "whelk" - region = "octopus" - resource_id = "oyster" + project = "scallop" + region = "abalone" + resource_id = "squid" expected = "projects/{project}/regions/{region}/vpnTunnels/{resource_id}".format( project=project, region=region, @@ -4096,9 +7132,9 @@ def test_vpn_tunnel_path(): def test_parse_vpn_tunnel_path(): expected = { - "project": "nudibranch", - "region": "cuttlefish", - "resource_id": "mussel", + "project": "clam", + "region": "whelk", + "resource_id": "octopus", } path = HubServiceClient.vpn_tunnel_path(**expected) @@ -4108,7 +7144,7 @@ def test_parse_vpn_tunnel_path(): def test_common_billing_account_path(): - billing_account = "winkle" + billing_account = "oyster" expected = "billingAccounts/{billing_account}".format( billing_account=billing_account, ) @@ -4118,7 +7154,7 @@ def test_common_billing_account_path(): def test_parse_common_billing_account_path(): expected = { - "billing_account": "nautilus", + "billing_account": "nudibranch", } path = HubServiceClient.common_billing_account_path(**expected) @@ -4128,7 +7164,7 @@ def test_parse_common_billing_account_path(): def test_common_folder_path(): - folder = "scallop" + folder = "cuttlefish" expected = "folders/{folder}".format( folder=folder, ) @@ -4138,7 +7174,7 @@ def test_common_folder_path(): def test_parse_common_folder_path(): expected = { - "folder": "abalone", + "folder": "mussel", } path = HubServiceClient.common_folder_path(**expected) @@ -4148,7 +7184,7 @@ def test_parse_common_folder_path(): def test_common_organization_path(): - organization = "squid" + organization = "winkle" expected = "organizations/{organization}".format( organization=organization, ) @@ -4158,7 +7194,7 @@ def test_common_organization_path(): def test_parse_common_organization_path(): expected = { - "organization": "clam", + "organization": "nautilus", } path = HubServiceClient.common_organization_path(**expected) @@ -4168,7 +7204,7 @@ def test_parse_common_organization_path(): def test_common_project_path(): - project = "whelk" + project = "scallop" expected = "projects/{project}".format( project=project, ) @@ -4178,7 +7214,7 @@ def test_common_project_path(): def test_parse_common_project_path(): expected = { - "project": "octopus", + "project": "abalone", } path = HubServiceClient.common_project_path(**expected) @@ -4188,8 +7224,8 @@ def test_parse_common_project_path(): def test_common_location_path(): - project = "oyster" - location = "nudibranch" + project = "squid" + location = "clam" expected = "projects/{project}/locations/{location}".format( project=project, location=location, @@ -4200,8 +7236,8 @@ def test_common_location_path(): def test_parse_common_location_path(): expected = { - "project": "cuttlefish", - "location": "mussel", + "project": "whelk", + "location": "octopus", } path = HubServiceClient.common_location_path(**expected) From 949d04fc57457829e6f95fdee9dc57f3e24728cc Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Sat, 30 Sep 2023 11:02:31 +0000 Subject: [PATCH 3/3] See https://github.com/googleapis/gapic-generator-python/issues/1765 --- .../cloud/networkconnectivity_v1/types/policy_based_routing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/policy_based_routing.py b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/policy_based_routing.py index dc25b464140e..cfc2d3235577 100644 --- a/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/policy_based_routing.py +++ b/packages/google-cloud-network-connectivity/google/cloud/networkconnectivity_v1/types/policy_based_routing.py @@ -101,7 +101,7 @@ class PolicyBasedRoute(proto.Message): the lowest-numbered priority value wins. The default value is 1000. The priority value must be from 1 to - 65535, inclusive. + 65535, inclusive. warnings (MutableSequence[google.cloud.networkconnectivity_v1.types.PolicyBasedRoute.Warnings]): Output only. If potential misconfigurations are detected for this route, this field will be