diff --git a/google-cloud-sdk/.install/anthoscli-linux-x86_64.snapshot.json b/google-cloud-sdk/.install/anthoscli-linux-x86_64.snapshot.json index 2917a7304a..8cef22f504 100644 --- a/google-cloud-sdk/.install/anthoscli-linux-x86_64.snapshot.json +++ b/google-cloud-sdk/.install/anthoscli-linux-x86_64.snapshot.json @@ -27,16 +27,16 @@ }, "platform_required": false, "version": { - "build_number": 20240426154730, + "build_number": 20240503145345, "version_string": "0.2.48" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/anthoscli.snapshot.json b/google-cloud-sdk/.install/anthoscli.snapshot.json index 66366f06bb..86803eb4e5 100644 --- a/google-cloud-sdk/.install/anthoscli.snapshot.json +++ b/google-cloud-sdk/.install/anthoscli.snapshot.json @@ -38,11 +38,11 @@ } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/bq-nix.snapshot.json b/google-cloud-sdk/.install/bq-nix.snapshot.json index 6a66956987..4f65de2415 100644 --- a/google-cloud-sdk/.install/bq-nix.snapshot.json +++ b/google-cloud-sdk/.install/bq-nix.snapshot.json @@ -28,16 +28,16 @@ }, "platform_required": false, "version": { - "build_number": 20240426154730, + "build_number": 20240503145345, "version_string": "2.1.4" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/bq.snapshot.json b/google-cloud-sdk/.install/bq.snapshot.json index 7d4a3e1d9f..dea48eaacd 100644 --- a/google-cloud-sdk/.install/bq.snapshot.json +++ b/google-cloud-sdk/.install/bq.snapshot.json @@ -22,16 +22,16 @@ "platform": {}, "platform_required": false, "version": { - "build_number": 20240426154730, + "build_number": 20240503145345, "version_string": "2.1.4" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/bundled-python3-unix-linux-x86_64.snapshot.json b/google-cloud-sdk/.install/bundled-python3-unix-linux-x86_64.snapshot.json index d652390902..db72e61872 100644 --- a/google-cloud-sdk/.install/bundled-python3-unix-linux-x86_64.snapshot.json +++ b/google-cloud-sdk/.install/bundled-python3-unix-linux-x86_64.snapshot.json @@ -28,16 +28,16 @@ }, "platform_required": false, "version": { - "build_number": 20240426154730, + "build_number": 20240503145345, "version_string": "3.11.8" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/bundled-python3-unix.snapshot.json b/google-cloud-sdk/.install/bundled-python3-unix.snapshot.json index 1a77fadb21..5e10d69dcd 100644 --- a/google-cloud-sdk/.install/bundled-python3-unix.snapshot.json +++ b/google-cloud-sdk/.install/bundled-python3-unix.snapshot.json @@ -28,11 +28,11 @@ } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/core-nix.snapshot.json b/google-cloud-sdk/.install/core-nix.snapshot.json index dd97044656..2e53b74e43 100644 --- a/google-cloud-sdk/.install/core-nix.snapshot.json +++ b/google-cloud-sdk/.install/core-nix.snapshot.json @@ -30,16 +30,16 @@ }, "platform_required": false, "version": { - "build_number": 20240426154730, - "version_string": "2024.04.26" + "build_number": 20240503145345, + "version_string": "2024.05.03" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/core.manifest b/google-cloud-sdk/.install/core.manifest index 8cd85aea46..184ebb2541 100644 --- a/google-cloud-sdk/.install/core.manifest +++ b/google-cloud-sdk/.install/core.manifest @@ -158,6 +158,7 @@ lib/googlecloudsdk/api_lib/backupdr/__init__.py lib/googlecloudsdk/api_lib/backupdr/backup_plan_associations.py lib/googlecloudsdk/api_lib/backupdr/backup_plans.py lib/googlecloudsdk/api_lib/backupdr/backup_vaults.py +lib/googlecloudsdk/api_lib/backupdr/backups.py lib/googlecloudsdk/api_lib/backupdr/management_servers.py lib/googlecloudsdk/api_lib/backupdr/util.py lib/googlecloudsdk/api_lib/batch/__init__.py @@ -288,7 +289,9 @@ lib/googlecloudsdk/api_lib/compute/instances/__init__.py lib/googlecloudsdk/api_lib/compute/instances/create/__init__.py lib/googlecloudsdk/api_lib/compute/instances/create/utils.py lib/googlecloudsdk/api_lib/compute/instances/ops_agents/__init__.py +lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_exceptions.py lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_policy.py +lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_util.py lib/googlecloudsdk/api_lib/compute/instances/ops_agents/converters/__init__.py lib/googlecloudsdk/api_lib/compute/instances/ops_agents/converters/cloud_ops_agents_policy_to_os_assignment_policy_converter.py lib/googlecloudsdk/api_lib/compute/instances/ops_agents/converters/guest_policy_to_ops_agents_policy_converter.py @@ -300,6 +303,7 @@ lib/googlecloudsdk/api_lib/compute/instances/ops_agents/converters/policy_uninst lib/googlecloudsdk/api_lib/compute/instances/ops_agents/exceptions.py lib/googlecloudsdk/api_lib/compute/instances/ops_agents/ops_agents_policy.py lib/googlecloudsdk/api_lib/compute/instances/ops_agents/validators/__init__.py +lib/googlecloudsdk/api_lib/compute/instances/ops_agents/validators/cloud_ops_agents_policy_validator.py lib/googlecloudsdk/api_lib/compute/instances/ops_agents/validators/guest_policy_validator.py lib/googlecloudsdk/api_lib/compute/instances/ops_agents/validators/ops_agents_policy_validator.py lib/googlecloudsdk/api_lib/compute/instances/utils.py @@ -1277,6 +1281,8 @@ lib/googlecloudsdk/command_lib/authz_toolkit/resources.yaml lib/googlecloudsdk/command_lib/backupdr/__init__.py lib/googlecloudsdk/command_lib/backupdr/flags.py lib/googlecloudsdk/command_lib/backupdr/resources.yaml +lib/googlecloudsdk/command_lib/backupdr/restore/__init__.py +lib/googlecloudsdk/command_lib/backupdr/restore/compute_flags.py lib/googlecloudsdk/command_lib/backupdr/util.py lib/googlecloudsdk/command_lib/batch/__init__.py lib/googlecloudsdk/command_lib/batch/resource_args.py @@ -2205,11 +2211,6 @@ lib/googlecloudsdk/command_lib/interactive/layout.py lib/googlecloudsdk/command_lib/interactive/lexer.py lib/googlecloudsdk/command_lib/interactive/parser.py lib/googlecloudsdk/command_lib/interactive/style.py -lib/googlecloudsdk/command_lib/iot/__init__.py -lib/googlecloudsdk/command_lib/iot/flags.py -lib/googlecloudsdk/command_lib/iot/resource_args.py -lib/googlecloudsdk/command_lib/iot/resources.yaml -lib/googlecloudsdk/command_lib/iot/util.py lib/googlecloudsdk/command_lib/kms/__init__.py lib/googlecloudsdk/command_lib/kms/certs.py lib/googlecloudsdk/command_lib/kms/crc32c.py @@ -2652,6 +2653,8 @@ lib/googlecloudsdk/command_lib/scheduler/__init__.py lib/googlecloudsdk/command_lib/scheduler/flags.yaml lib/googlecloudsdk/command_lib/scheduler/resources.yaml lib/googlecloudsdk/command_lib/scheduler/util.py +lib/googlecloudsdk/command_lib/seclm/default_resources.yaml +lib/googlecloudsdk/command_lib/seclm/v1alpha_resources.yaml lib/googlecloudsdk/command_lib/secrets/__init__.py lib/googlecloudsdk/command_lib/secrets/args.py lib/googlecloudsdk/command_lib/secrets/completers.py @@ -4430,6 +4433,10 @@ lib/googlecloudsdk/generated_clients/apis/sddc/v1alpha1/resources.py lib/googlecloudsdk/generated_clients/apis/sddc/v1alpha1/sddc_v1alpha1_client.py lib/googlecloudsdk/generated_clients/apis/sddc/v1alpha1/sddc_v1alpha1_messages.py lib/googlecloudsdk/generated_clients/apis/seclm/__init__.py +lib/googlecloudsdk/generated_clients/apis/seclm/v1/__init__.py +lib/googlecloudsdk/generated_clients/apis/seclm/v1/resources.py +lib/googlecloudsdk/generated_clients/apis/seclm/v1/seclm_v1_client.py +lib/googlecloudsdk/generated_clients/apis/seclm/v1/seclm_v1_messages.py lib/googlecloudsdk/generated_clients/apis/seclm/v1alpha/__init__.py lib/googlecloudsdk/generated_clients/apis/seclm/v1alpha/resources.py lib/googlecloudsdk/generated_clients/apis/seclm/v1alpha/seclm_v1alpha_client.py @@ -5193,11 +5200,13 @@ lib/googlecloudsdk/schemas/configdelivery/v1alpha/LabelSelector.yaml lib/googlecloudsdk/schemas/configdelivery/v1alpha/LabelsValue.yaml lib/googlecloudsdk/schemas/configdelivery/v1alpha/MatchLabelsValue.yaml lib/googlecloudsdk/schemas/configdelivery/v1alpha/ResourceBundleSelector.yaml +lib/googlecloudsdk/schemas/configdelivery/v1alpha/ResourceBundleTag.yaml lib/googlecloudsdk/schemas/configdelivery/v1alpha/RollingStrategy.yaml lib/googlecloudsdk/schemas/configdelivery/v1alpha/RolloutStrategy.yaml lib/googlecloudsdk/schemas/configdelivery/v1alpha/Target.yaml lib/googlecloudsdk/schemas/configdelivery/v1alpha/VariantSelector.yaml lib/googlecloudsdk/schemas/configdelivery/v1alpha/Variants.yaml +lib/googlecloudsdk/schemas/datastream/v1/AppendOnly.yaml lib/googlecloudsdk/schemas/datastream/v1/AvroFileFormat.yaml lib/googlecloudsdk/schemas/datastream/v1/BackfillAllStrategy.yaml lib/googlecloudsdk/schemas/datastream/v1/BackfillJob.yaml @@ -5258,6 +5267,7 @@ lib/googlecloudsdk/schemas/datastream/v1/ListRoutesResponse.yaml lib/googlecloudsdk/schemas/datastream/v1/ListStreamObjectsResponse.yaml lib/googlecloudsdk/schemas/datastream/v1/ListStreamsResponse.yaml lib/googlecloudsdk/schemas/datastream/v1/LookupStreamObjectRequest.yaml +lib/googlecloudsdk/schemas/datastream/v1/Merge.yaml lib/googlecloudsdk/schemas/datastream/v1/MetadataValue.yaml lib/googlecloudsdk/schemas/datastream/v1/MysqlColumn.yaml lib/googlecloudsdk/schemas/datastream/v1/MysqlDatabase.yaml @@ -6476,8 +6486,11 @@ lib/surface/backup_dr/backup_vaults/describe.yaml lib/surface/backup_dr/backup_vaults/list.yaml lib/surface/backup_dr/backup_vaults/update.py lib/surface/backup_dr/backups/__init__.py +lib/surface/backup_dr/backups/delete.py lib/surface/backup_dr/backups/describe.yaml lib/surface/backup_dr/backups/list.yaml +lib/surface/backup_dr/backups/restore/__init__.py +lib/surface/backup_dr/backups/restore/compute.py lib/surface/backup_dr/data_sources/__init__.py lib/surface/backup_dr/data_sources/describe.yaml lib/surface/backup_dr/data_sources/list.yaml @@ -8726,6 +8739,7 @@ lib/surface/dataplex/entry_groups/get_iam_policy.yaml lib/surface/dataplex/entry_groups/list.yaml lib/surface/dataplex/entry_groups/remove_iam_policy_binding.py lib/surface/dataplex/entry_groups/set_iam_policy.py +lib/surface/dataplex/entry_groups/update.py lib/surface/dataplex/entry_types/__init__.py lib/surface/dataplex/entry_types/add_iam_policy_binding.py lib/surface/dataplex/entry_types/delete.yaml @@ -10710,6 +10724,9 @@ lib/surface/network_connectivity/spokes/describe.yaml lib/surface/network_connectivity/spokes/linked_interconnect_attachments/__init__.py lib/surface/network_connectivity/spokes/linked_interconnect_attachments/create.yaml lib/surface/network_connectivity/spokes/linked_interconnect_attachments/update.yaml +lib/surface/network_connectivity/spokes/linked_private_services_access/__init__.py +lib/surface/network_connectivity/spokes/linked_private_services_access/create.py +lib/surface/network_connectivity/spokes/linked_private_services_access/update.py lib/surface/network_connectivity/spokes/linked_router_appliances/__init__.py lib/surface/network_connectivity/spokes/linked_router_appliances/create.yaml lib/surface/network_connectivity/spokes/linked_router_appliances/update.yaml @@ -11634,7 +11651,9 @@ lib/surface/scc/manage/custom_modules/sha/list_effective.py lib/surface/scc/manage/custom_modules/sha/simulate.py lib/surface/scc/manage/custom_modules/sha/update.py lib/surface/scc/manage/services/__init__.py +lib/surface/scc/manage/services/describe.py lib/surface/scc/manage/services/list.py +lib/surface/scc/manage/services/update.py lib/surface/scc/muteconfigs/__init__.py lib/surface/scc/muteconfigs/create.py lib/surface/scc/muteconfigs/delete.py @@ -11713,6 +11732,31 @@ lib/surface/scheduler/jobs/update/pubsub.yaml lib/surface/scheduler/locations/__init__.py lib/surface/scheduler/locations/describe.py lib/surface/scheduler/locations/list.py +lib/surface/seclm/__init__.py +lib/surface/seclm/operations/__init__.py +lib/surface/seclm/operations/_partials/_cancel_alpha.yaml +lib/surface/seclm/operations/_partials/_delete_alpha.yaml +lib/surface/seclm/operations/_partials/_describe_alpha.yaml +lib/surface/seclm/operations/_partials/_list_alpha.yaml +lib/surface/seclm/operations/_partials/_wait_alpha.yaml +lib/surface/seclm/operations/cancel.yaml +lib/surface/seclm/operations/delete.yaml +lib/surface/seclm/operations/describe.yaml +lib/surface/seclm/operations/list.yaml +lib/surface/seclm/operations/wait.yaml +lib/surface/seclm/workbenches/__init__.py +lib/surface/seclm/workbenches/_partials/_create_alpha.yaml +lib/surface/seclm/workbenches/_partials/_delete_alpha.yaml +lib/surface/seclm/workbenches/_partials/_describe_alpha.yaml +lib/surface/seclm/workbenches/_partials/_list_alpha.yaml +lib/surface/seclm/workbenches/_partials/_query_alpha.yaml +lib/surface/seclm/workbenches/_partials/_update_alpha.yaml +lib/surface/seclm/workbenches/create.yaml +lib/surface/seclm/workbenches/delete.yaml +lib/surface/seclm/workbenches/describe.yaml +lib/surface/seclm/workbenches/list.yaml +lib/surface/seclm/workbenches/query.yaml +lib/surface/seclm/workbenches/update.yaml lib/surface/secrets/__init__.py lib/surface/secrets/add_iam_policy_binding.py lib/surface/secrets/add_iam_policy_binding.yaml diff --git a/google-cloud-sdk/.install/core.snapshot.json b/google-cloud-sdk/.install/core.snapshot.json index 7469094a88..504d71a385 100644 --- a/google-cloud-sdk/.install/core.snapshot.json +++ b/google-cloud-sdk/.install/core.snapshot.json @@ -2,7 +2,7 @@ "components": [ { "data": { - "contents_checksum": "e217db8a3578d9f1cba18c28b6a6efa38d7cda6a9415b53a0bbb0aa7767bb4a5", + "contents_checksum": "56ce80562703967dc39b2b05e6dd814e07cfe07a078706d9f0ad6ce0716495c8", "source": "", "type": "tar" }, @@ -24,16 +24,16 @@ "platform": {}, "platform_required": false, "version": { - "build_number": 20240426154730, - "version_string": "2024.04.26" + "build_number": 20240503145345, + "version_string": "2024.05.03" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/gcloud-crc32c-linux-x86_64.snapshot.json b/google-cloud-sdk/.install/gcloud-crc32c-linux-x86_64.snapshot.json index 739043ab49..74b769658b 100644 --- a/google-cloud-sdk/.install/gcloud-crc32c-linux-x86_64.snapshot.json +++ b/google-cloud-sdk/.install/gcloud-crc32c-linux-x86_64.snapshot.json @@ -27,16 +27,16 @@ }, "platform_required": false, "version": { - "build_number": 20240426154730, + "build_number": 20240503145345, "version_string": "1.0.0" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/gcloud-crc32c.snapshot.json b/google-cloud-sdk/.install/gcloud-crc32c.snapshot.json index ebb034709f..85cef1d28a 100644 --- a/google-cloud-sdk/.install/gcloud-crc32c.snapshot.json +++ b/google-cloud-sdk/.install/gcloud-crc32c.snapshot.json @@ -37,11 +37,11 @@ } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/gcloud-deps-linux-x86_64.snapshot.json b/google-cloud-sdk/.install/gcloud-deps-linux-x86_64.snapshot.json index 1cc8420185..3118352199 100644 --- a/google-cloud-sdk/.install/gcloud-deps-linux-x86_64.snapshot.json +++ b/google-cloud-sdk/.install/gcloud-deps-linux-x86_64.snapshot.json @@ -28,16 +28,16 @@ }, "platform_required": false, "version": { - "build_number": 20240426154730, - "version_string": "2024.04.26" + "build_number": 20240503145345, + "version_string": "2024.05.03" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/gcloud-deps.snapshot.json b/google-cloud-sdk/.install/gcloud-deps.snapshot.json index a94d8bd0d3..78463a7932 100644 --- a/google-cloud-sdk/.install/gcloud-deps.snapshot.json +++ b/google-cloud-sdk/.install/gcloud-deps.snapshot.json @@ -2,7 +2,7 @@ "components": [ { "data": { - "contents_checksum": "771c2a48b43840cd3da860f27365e4c7f0f310e86000a79b73c17030e7a66f6a", + "contents_checksum": "91de55f1ec585b9e8326f529655b1c550739f8f864059b47e2d7554c4fc170a6", "source": "", "type": "tar" }, @@ -26,16 +26,16 @@ "platform": {}, "platform_required": false, "version": { - "build_number": 20240426154730, - "version_string": "2024.04.26" + "build_number": 20240503145345, + "version_string": "2024.05.03" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/gcloud.snapshot.json b/google-cloud-sdk/.install/gcloud.snapshot.json index 9503fafb41..62233f0b05 100644 --- a/google-cloud-sdk/.install/gcloud.snapshot.json +++ b/google-cloud-sdk/.install/gcloud.snapshot.json @@ -20,11 +20,11 @@ } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/gsutil-nix.snapshot.json b/google-cloud-sdk/.install/gsutil-nix.snapshot.json index defcc5ca10..6eee9e9759 100644 --- a/google-cloud-sdk/.install/gsutil-nix.snapshot.json +++ b/google-cloud-sdk/.install/gsutil-nix.snapshot.json @@ -28,16 +28,16 @@ }, "platform_required": false, "version": { - "build_number": 20240426154730, + "build_number": 20240503145345, "version_string": "5.27" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/.install/gsutil.snapshot.json b/google-cloud-sdk/.install/gsutil.snapshot.json index de318f5090..e1aa8756be 100644 --- a/google-cloud-sdk/.install/gsutil.snapshot.json +++ b/google-cloud-sdk/.install/gsutil.snapshot.json @@ -22,16 +22,16 @@ "platform": {}, "platform_required": false, "version": { - "build_number": 20240426154730, + "build_number": 20240503145345, "version_string": "5.27" } } ], - "revision": 20240426154730, + "revision": 20240503145345, "schema_version": { "no_update": false, "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz", "version": 3 }, - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/RELEASE_NOTES b/google-cloud-sdk/RELEASE_NOTES index ceff76b6ce..4f4fb7e0ba 100644 --- a/google-cloud-sdk/RELEASE_NOTES +++ b/google-cloud-sdk/RELEASE_NOTES @@ -5,8 +5,92 @@ Copyright 2014-2024 Google Inc. All rights reserved. Subscribe to these release notes at [https://groups.google.com/forum/#!forum/google-cloud-sdk-announce](https://groups.google.com/forum/#!forum/google-cloud-sdk-announce). +## 475.0.0 (2024-05-07) + +### Google Cloud CLI + +* Enabled faster component update mode by default on macOS. This avoids + making a backup copy of the installation directory when running certain + `gcloud components` commands, which should significantly improve the time + taken by these operations (including installation and updates). + * If for some reason this change causes problems, please file a bug report. + One can temporarily revert to the legacy update mode via `gcloud config set + experimental/fast_component_update False` or by setting the environment + variable `CLOUDSDK_EXPERIMENTAL_FAST_COMPONENT_UPDATE=False` (it may be + necessary to first reinstall the `gcloud` CLI either from scratch or by + running `gcloud components reinstall`). Note that the faster update mode + will eventually become the default on all platforms at which point the + `fast_component_update` mode property will be removed. + * Since the `gcloud` CLI no longer makes a full copy of the installation + directory to allow for this performance improvement, `gcloud components + restore` has been deprecated. However, equivalent functionality can be + achieved via `gcloud components update --version=` or + `gcloud components reinstall`, depending on whether one needs to restore an + earlier version or reinstall the current version, respectively. + +### Anthos Multi-Cloud + +* Updated `gcloud container attached clusters register` to fail when using + `--has-private-issuer` with `--distribution=eks`. + +### Artifact Registry + +* Fixed bug where `gcloud artifacts docker upgrade migrate` sometimes excluded bucket auth from generated IAM policies. + +### Cloud Build + +* Modified `gcloud builds submit` to support submitting a build with a Developer Connect GitRepositoryLink resource. + +### Cloud Dataflow + +* Promoted `gcloud dataflow yaml run` to GA. + +### Cloud Datastream + +* Fix bug where append only flag not recognized in BiQueryDestinationConfig. + +### Cloud Firestore Emulator + +* Release Cloud Firestore emulator v1.19.6 + * Added `--import-data` and `--export-on-exit` flags. + * Fixed few bugs regarding transactions, including: read only commits, retriable transactions and contention errors on commits. + +### Cloud NetApp + +* Added flex as a `--service-level` option during `gcloud netapp storage-pools create`. + +### Compute Engine + +* Promoted dual stack IPv6 support for `gcloud compute instances create-with-container` and `gcloud compute instance-templates create-with-container` to GA. + +### Network Connectivity + +* Promote Regional API Endpoints to GA. +* Added `--export-psc` and `--no-export-psc` flags to `gcloud network-connectivity hubs create` and `gcloud network-connectivity hubs update`. + +### Network Security + +* Fixed `gcloud network-security tls-inspection-policies import` not recognizing `minTlsVersion` and `tlsFeatureProfile`. +* Fixed `gcloud network-security tls-inspection-policies export` not recognizing `minTlsVersion` and `tlsFeatureProfile`. + +### Security Command Center + +* Removed misleading documentation in `gcloud scc findings create` command that imply +findings can be created at folder and project level. This command only allows findings +to be created under an organization. + + +Subscribe to these release notes at [https://groups.google.com/forum/#!forum/google-cloud-sdk-announce](https://groups.google.com/forum/#!forum/google-cloud-sdk-announce). + + ## 474.0.0 (2024-04-30) +### Breaking Changes + +* **(Cloud Run)** `gcloud run jobs deploy` is not working with source builds in this release. +Run `gcloud builds submit` and then `gcloud run jobs deploy` with the generated image, or use Google Cloud CLI version 472 or earlier. + + ### AI * Added more choice options to `--region` flag of `gcloud ai custom-jobs` and `gcloud ai hp-tunining-jobs`, including: africa-south1, europe-west12, me-central1, me-central2 and us-east5. @@ -2567,7 +2651,7 @@ Subscribe to these release notes at [https://groups.google.com/forum/#!forum/goo * Modified local ssd count value of `--ephemeral-storage-local-ssd`, `--ephemeral-storage`, and `--local-nvme-ssd-block` flags from `gcloud container cluster create/update` to be optional to support third generation machine types, -which specifiy a static count. Pre-Gen3 behavior is unchanged. +which specify a static count. Pre-Gen3 behavior is unchanged. ### Network Services @@ -7940,7 +8024,7 @@ Subscribe to these release notes at [https://groups.google.com/forum/#!forum/goo ### Cloud Deploy -* Added support for absolute paths for "`--skaffold-file` flag of `gcloud deploy releases create` commmand". +* Added support for absolute paths for "`--skaffold-file` flag of `gcloud deploy releases create` command". ### Cloud Memorystore @@ -18732,7 +18816,7 @@ Subscribe to these release notes at [https://groups.google.com/forum/#!forum/goo ### Cloud DNS -* Promoted `--enable-logging` flag of `gcloud dns polices` to GA. +* Promoted `--enable-logging` flag of `gcloud dns policies` to GA. ### Cloud Dataproc @@ -18807,7 +18891,7 @@ Subscribe to these release notes at [https://groups.google.com/forum/#!forum/goo ### Cloud DNS -* Promoted `gcloud dns polices` to GA. +* Promoted `gcloud dns policies` to GA. * Promoted `gcloud dns managed-zones forwarding-targets` to GA. ### Cloud Dataproc @@ -18891,7 +18975,7 @@ Subscribe to these release notes at [https://groups.google.com/forum/#!forum/goo * Promoted `gcloud compute external-vpn-gateways` to GA. * Promoted `gcloud compute vpn-gateways` to GA. -* Promoted Highly Available related comands for `gcloud compute vpn-tunnels` to GA. +* Promoted Highly Available related commands for `gcloud compute vpn-tunnels` to GA. * Promoted `--logging-aggregation-interval`, `--logging-flow-sampling`, and `--logging-metadata` flags of `gcloud compute networks subnets ` to GA. @@ -22173,7 +22257,7 @@ Subscribe to these release notes at [https://groups.google.com/forum/#!forum/goo ### Cloud Bigtable -* Added new flags to the `cbt` commmand-line tool: +* Added new flags to the `cbt` command-line tool: * `-user-agent` for specifying a custom User Agent * `-columns` for specifying columns to read with `read` and `lookup` * `-cells-per-column` for limiting number of cells read per column with `read` and `lookup` diff --git a/google-cloud-sdk/VERSION b/google-cloud-sdk/VERSION index eed44c48e5..c42ef4fc29 100644 --- a/google-cloud-sdk/VERSION +++ b/google-cloud-sdk/VERSION @@ -1 +1 @@ -474.0.0 +475.0.0 diff --git a/google-cloud-sdk/data/cli/gcloud_completions.py b/google-cloud-sdk/data/cli/gcloud_completions.py index 5955ccf6ab..5b03c58507 100644 --- a/google-cloud-sdk/data/cli/gcloud_completions.py +++ b/google-cloud-sdk/data/cli/gcloud_completions.py @@ -26233,12 +26233,16 @@ "all", "bootstrap", "cluster", + "clusters", + "endpoint", "endpoints", "listener", "listeners", "log", + "route", "routes", - "secret" + "secret", + "secrets" ] } }, @@ -27307,12 +27311,16 @@ "all", "bootstrap", "cluster", + "clusters", + "endpoint", "endpoints", "listener", "listeners", "log", + "route", "routes", - "secret" + "secret", + "secrets" ] } }, @@ -34743,7 +34751,9 @@ "commands": {}, "flags": { "--database-mode": "value", + "--export-on-exit": "value", "--host-port": "value", + "--import-data": "value", "--rules": "value" } } @@ -35686,6 +35696,7 @@ "--filter": "value", "--limit": "value", "--page-size": "value", + "--show-deleted": "bool", "--sort-by": "value", "--uri": "bool" } @@ -40210,6 +40221,7 @@ "--deny-maintenance-period-start-date": "value", "--deny-maintenance-period-time": "value", "--enable-public-ip": "bool", + "--linked-lsp-project-number": "value", "--maintenance-window-day": [ "friday", "monday", @@ -67300,6 +67312,7 @@ "--type": [ "accelerator-optimized", "accelerator-optimized-a3", + "accelerator-optimized-a3-mega", "compute-optimized", "compute-optimized-c2d", "compute-optimized-c3", @@ -69958,6 +69971,9 @@ "--image": "value", "--image-family": "value", "--image-project": "value", + "--ipv6-network-tier": [ + "PREMIUM" + ], "--labels": "value", "--local-ssd": "value", "--machine-type": "dynamic", @@ -69988,6 +70004,10 @@ "--shielded-integrity-monitoring": "bool", "--shielded-secure-boot": "bool", "--shielded-vtpm": "bool", + "--stack-type": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], "--subnet": "value", "--tags": "value" } @@ -70456,6 +70476,9 @@ "DELETE", "STOP" ], + "--ipv6-network-tier": [ + "PREMIUM" + ], "--labels": "value", "--local-ssd": "value", "--local-ssd-recovery-timeout": "value", @@ -70496,6 +70519,10 @@ "--shielded-secure-boot": "bool", "--shielded-vtpm": "bool", "--source-instance-template": "dynamic", + "--stack-type": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], "--subnet": "value", "--tags": "value", "--threads-per-core": "value", @@ -78327,12 +78354,16 @@ "all", "bootstrap", "cluster", + "clusters", + "endpoint", "endpoints", "listener", "listeners", "log", + "route", "routes", - "secret" + "secret", + "secrets" ] } }, @@ -79307,12 +79338,16 @@ "all", "bootstrap", "cluster", + "clusters", + "endpoint", "endpoints", "listener", "listeners", "log", + "route", "routes", - "secret" + "secret", + "secrets" ] } }, @@ -84749,7 +84784,9 @@ "commands": {}, "flags": { "--database-mode": "value", + "--export-on-exit": "value", "--host-port": "value", + "--import-data": "value", "--rules": "value" } } @@ -105014,6 +105051,7 @@ "--type": [ "accelerator-optimized", "accelerator-optimized-a3", + "accelerator-optimized-a3-mega", "compute-optimized", "compute-optimized-c2d", "compute-optimized-c3", @@ -107420,6 +107458,9 @@ "--image": "value", "--image-family": "value", "--image-project": "value", + "--ipv6-network-tier": [ + "PREMIUM" + ], "--labels": "value", "--machine-type": "dynamic", "--maintenance-policy": [ @@ -107449,6 +107490,10 @@ "--shielded-integrity-monitoring": "bool", "--shielded-secure-boot": "bool", "--shielded-vtpm": "bool", + "--stack-type": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], "--subnet": "value", "--tags": "value" } @@ -107865,6 +107910,9 @@ "DELETE", "STOP" ], + "--ipv6-network-tier": [ + "PREMIUM" + ], "--labels": "value", "--local-ssd-recovery-timeout": "value", "--machine-type": "dynamic", @@ -107904,6 +107952,10 @@ "--shielded-secure-boot": "bool", "--shielded-vtpm": "bool", "--source-instance-template": "dynamic", + "--stack-type": [ + "IPV4_IPV6", + "IPV4_ONLY" + ], "--subnet": "value", "--tags": "value", "--threads-per-core": "value", @@ -119232,6 +119284,20 @@ } }, "flags": {} + }, + "yaml": { + "commands": { + "run": { + "commands": {}, + "flags": { + "--pipeline-options": "value", + "--region": "value", + "--yaml-pipeline": "value", + "--yaml-pipeline-file": "value" + } + } + }, + "flags": {} } }, "flags": {} @@ -124153,7 +124219,9 @@ "commands": {}, "flags": { "--database-mode": "value", + "--export-on-exit": "value", "--host-port": "value", + "--import-data": "value", "--rules": "value" } } @@ -129559,6 +129627,7 @@ "--deny-maintenance-period-end-date": "value", "--deny-maintenance-period-start-date": "value", "--deny-maintenance-period-time": "value", + "--linked-lsp-project-number": "value", "--maintenance-window-day": [ "friday", "monday", @@ -131886,6 +131955,7 @@ "--network": "value", "--service-level": [ "extreme", + "flex", "premium", "standard" ] @@ -132197,7 +132267,17 @@ "flags": { "--async": "bool", "--description": "value", - "--labels": "value" + "--export-psc": "bool", + "--labels": "value", + "--policy-mode": [ + "policy-mode-unspecified", + "preset" + ], + "--preset-topology": [ + "mesh", + "preset-topology-unspecified", + "star" + ] } }, "delete": { @@ -132268,6 +132348,20 @@ "flags": { "--hub": "value" } + }, + "update": { + "commands": {}, + "flags": { + "--add-auto-accept-projects": "value", + "--async": "bool", + "--clear-auto-accept-projects": "bool", + "--clear-labels": "bool", + "--description": "value", + "--hub": "dynamic", + "--remove-auto-accept-projects": "value", + "--remove-labels": "value", + "--update-labels": "value" + } } }, "flags": {} @@ -132364,6 +132458,7 @@ "--async": "bool", "--clear-labels": "bool", "--description": "value", + "--export-psc": "bool", "--remove-labels": "value", "--update-labels": "value" } @@ -132520,6 +132615,48 @@ }, "flags": {} }, + "regional-endpoints": { + "commands": { + "create": { + "commands": {}, + "flags": { + "--address": "value", + "--async": "bool", + "--description": "value", + "--enable-global-access": "bool", + "--labels": "value", + "--network": "value", + "--region": "value", + "--subnetwork": "value", + "--target-google-api": "value" + } + }, + "delete": { + "commands": {}, + "flags": { + "--async": "bool", + "--region": "value" + } + }, + "describe": { + "commands": {}, + "flags": { + "--region": "value" + } + }, + "list": { + "commands": {}, + "flags": { + "--filter": "value", + "--limit": "value", + "--page-size": "value", + "--region": "value", + "--sort-by": "value" + } + } + }, + "flags": {} + }, "service-connection-policies": { "commands": { "create": { diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/asset/client_util.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/asset/client_util.py index 1ae0e26e76..24c86a412a 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/asset/client_util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/asset/client_util.py @@ -47,16 +47,6 @@ } _HTTP_ERROR_FORMAT = ('HTTP request failed with status code {}. ' 'Response content: {}') -# A dictionary that captures version differences for IAM Policy Analyzer. -_IAM_POLICY_ANALYZER_VERSION_DICT_JSON = { - DEFAULT_API_VERSION: { - 'resource_selector': 'analysisQuery_resourceSelector', - 'identity_selector': 'analysisQuery_identitySelector', - 'access_selector': 'analysisQuery_accessSelector', - 'condition_context': 'analysisQuery_conditionContext', - 'options': 'analysisQuery_options', - }, -} class MessageDecodeError(core_exceptions.Error): @@ -125,13 +115,6 @@ def MakeGetAssetsHistoryHttpRequests(args, """Manually make the get assets history request.""" messages = GetMessages(api_version) - encoding.AddCustomJsonFieldMapping( - messages.CloudassetBatchGetAssetsHistoryRequest, - 'readTimeWindow_startTime', 'readTimeWindow.startTime') - encoding.AddCustomJsonFieldMapping( - messages.CloudassetBatchGetAssetsHistoryRequest, 'readTimeWindow_endTime', - 'readTimeWindow.endTime') - content_type = arg_utils.ChoiceToEnum( args.content_type, messages.CloudassetBatchGetAssetsHistoryRequest .ContentTypeValueValuesEnum) @@ -341,41 +324,10 @@ def __init__(self, api_version=DEFAULT_API_VERSION): def Analyze(self, args): """Calls MakeAnalyzeIamPolicy method.""" - messages = self.EncodeMessages(args) + messages = GetMessages(self.api_version) return MakeAnalyzeIamPolicyHttpRequests(args, self.service, messages, self.api_version) - def EncodeMessages(self, args): - """Adds custom encoding for MakeAnalyzeIamPolicy request.""" - messages = GetMessages(self.api_version) - - def AddCustomJsonFieldMapping(prefix, suffix): - field = _IAM_POLICY_ANALYZER_VERSION_DICT_JSON[ - self.api_version][prefix] + suffix - encoding.AddCustomJsonFieldMapping( - messages.CloudassetAnalyzeIamPolicyRequest, - field, - field.replace('_', '.'), - ) - - AddCustomJsonFieldMapping('resource_selector', '_fullResourceName') - AddCustomJsonFieldMapping('identity_selector', '_identity') - AddCustomJsonFieldMapping('access_selector', '_roles') - AddCustomJsonFieldMapping('access_selector', '_permissions') - AddCustomJsonFieldMapping('options', '_expandGroups') - AddCustomJsonFieldMapping('options', '_expandResources') - AddCustomJsonFieldMapping('options', '_expandRoles') - AddCustomJsonFieldMapping('options', '_outputResourceEdges') - AddCustomJsonFieldMapping('options', '_outputGroupEdges') - AddCustomJsonFieldMapping('options', '_analyzeServiceAccountImpersonation') - - if args.IsKnownAndSpecified('include_deny_policy_analysis'): - AddCustomJsonFieldMapping('options', '_includeDenyPolicyAnalysis') - - if args.IsKnownAndSpecified('access_time'): - AddCustomJsonFieldMapping('condition_context', '_accessTime') - return messages - class AssetExportClient(object): """Client for export asset.""" diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/backupdr/backups.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/backupdr/backups.py new file mode 100644 index 0000000000..062a7fa62b --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/backupdr/backups.py @@ -0,0 +1,93 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google Inc. All Rights Reserved. +# +# 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. +"""Cloud Backup and DR Backups client.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.api_lib.backupdr import util +from googlecloudsdk.command_lib.backupdr import util as command_util +from googlecloudsdk.core import resources +from googlecloudsdk.generated_clients.apis.backupdr.v1 import backupdr_v1_messages + + +class ComputeRestoreConfig(util.RestrictedDict): + """Restore configuration.""" + + def __init__(self, *args, **kwargs): + supported_flags = [ + "Name", + "TargetZone", + "TargetProject", + ] + super(ComputeRestoreConfig, self).__init__(supported_flags, *args, **kwargs) + + +class BackupsClient(util.BackupDrClientBase): + """Cloud Backup and DR Backups client.""" + + def __init__(self): + super(BackupsClient, self).__init__() + self.service = ( + self.client.projects_locations_backupVaults_dataSources_backups + ) + + def Delete( + self, resource: resources.Resource + ) -> backupdr_v1_messages.Operation: + """Deletes the given backup. + + Args: + resource: The backup to be deleted. + + Returns: + A long running operation + """ + request_id = command_util.GenerateRequestId() + request = self.messages.BackupdrProjectsLocationsBackupVaultsDataSourcesBackupsDeleteRequest( + name=resource.RelativeName(), requestId=request_id + ) + + return self.service.Delete(request) + + def RestoreCompute(self, resource, restore_config: ComputeRestoreConfig): + """Restores the given backup. + + Args: + resource: The backup to be restored. + restore_config: Restore configuration. + + Returns: + A long running operation + """ + restore_request = self.messages.RestoreBackupRequest() + restore_request.computeInstanceRestoreProperties = ( + self.messages.ComputeInstanceRestoreProperties( + name=restore_config["Name"], + ) + ) + + restore_request.computeInstanceTargetEnvironment = ( + self.messages.ComputeInstanceTargetEnvironment( + zone=restore_config["TargetZone"], + project=restore_config["TargetProject"], + ) + ) + + request = self.messages.BackupdrProjectsLocationsBackupVaultsDataSourcesBackupsRestoreRequest( + name=resource.RelativeName(), restoreBackupRequest=restore_request + ) + return self.service.Restore(request) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/backupdr/util.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/backupdr/util.py index e497772146..09abf19af5 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/backupdr/util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/backupdr/util.py @@ -91,3 +91,33 @@ def WaitForOperation( return waiter.WaitFor( poller, operation_ref, message, max_wait_ms=max_wait.seconds * 1000 ) + + +# TODO: b/332661929 - Add unit tests for this class. +class RestrictedDict(dict): + """Restricted dict only allows specific keys, useful in creating a config object.""" + + def __init__(self, allowed_keys, *args, **kwargs): + super().__init__(*args, **kwargs) + self.allowed_keys = allowed_keys + + def __setitem__(self, key, value): + if key not in self.allowed_keys: + raise KeyError( + f"The Key '{key}' is not one of [{', '.join(self.allowed_keys)}]" + ) + super().__setitem__(key, value) + + def update(self, other=None, **kwargs): + # Check keys in 'other' if it's a dictionary-like object + if other: + other_keys = other.keys() if isinstance(other, dict) else other + invalid_keys = set(other_keys) - set(self.allowed_keys) + if invalid_keys: + raise KeyError( + f'The Keys {invalid_keys} are not part of ' + f' [{",".join(self.allowed_keys)}]' + ) + + # Update the dictionary + super().update(other, **kwargs) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/cloudbuild/v2/pipeline_output_util.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/cloudbuild/v2/pipeline_output_util.py index ca1df66656..0e0ef70616 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/cloudbuild/v2/pipeline_output_util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/cloudbuild/v2/pipeline_output_util.py @@ -29,15 +29,19 @@ class TektonPrinter(custom_printer_base.CustomPrinterBase): def Transform(self, internal_proto): proto = encoding.MessageToDict(internal_proto) - if "pipelineSpec" in proto or "pipelineRef" in proto: - yaml_str = self.InternalPRToTektonPR(proto) + if ( + "pipelineSpec" in proto + or "pipelineRef" in proto + or "pipelineSpecYaml" in proto + ): + yaml_str = self.PublicPRToTektonPR(proto) return yaml.dump(yaml_str, round_trip=True) elif "taskSpec" in proto or "taskRef" in proto: - yaml_str = self.InternalTRToTektonPR(proto) + yaml_str = self.PublicTRToTektonPR(proto) return yaml.dump(yaml_str, round_trip=True) - def InternalPRToTektonPR(self, internal): - """Convert Tekton yaml file into PipelineRun message.""" + def PublicPRToTektonPR(self, internal): + """Convert a PipelineRun message into Tekton yaml.""" pr = { "metadata": {}, "spec": {}, @@ -58,9 +62,11 @@ def InternalPRToTektonPR(self, internal): internal.pop("pipelineSpec") ) elif "pipelineRef" in internal: - pr["spec"]["pipelineRef"] = _TransformPipelineRef( - internal.pop("pipelineRef") - ) + pr["spec"]["pipelineRef"] = TransformRef(internal.pop("pipelineRef")) + elif "pipelineSpecYaml" in internal: + yaml_string = internal.pop("pipelineSpecYaml") + formatted_yaml = yaml.load(yaml_string, round_trip=True) + pr["spec"]["pipelineSpecYaml"] = formatted_yaml if "timeout" in internal: pr["spec"]["timeout"] = internal.pop("timeout") if "workspaces" in internal: @@ -92,8 +98,8 @@ def InternalPRToTektonPR(self, internal): } return pr - def InternalTRToTektonPR(self, internal): - """Convert Internal TR into Tekton yaml.""" + def PublicTRToTektonPR(self, internal): + """Convert a TaskRun message into Tekton yaml.""" tr = { "metadata": {}, "spec": {}, @@ -110,7 +116,7 @@ def InternalTRToTektonPR(self, internal): if "taskSpec" in internal: tr["spec"]["taskSpec"] = _TransformTaskSpec(internal.pop("taskSpec")) elif "taskRef" in internal: - tr["spec"]["taskRef"] = _TransformTaskRef(internal.pop("taskRef")) + tr["spec"]["taskRef"] = TransformRef(internal.pop("taskRef")) if "timeout" in internal: tr["spec"]["timeout"] = internal.pop("timeout") if "workspaces" in internal: @@ -132,7 +138,7 @@ def InternalTRToTektonPR(self, internal): tr["status"]["taskSpec"] = _TransformTaskSpec(rts) # StepState if "steps" in internal: - tr["status"]["steps"] = internal.pop("steps") + tr["status"]["steps"] = _TransformStepStates(internal.pop("steps")) # TaskRunResults if "results" in internal: tr["status"]["results"] = _TransformTaskRunResults( @@ -148,7 +154,7 @@ def _TransformPipelineSpec(ps): """Convert PipelineSpec into Tekton yaml.""" pipeline_spec = {} if "params" in ps: - pipeline_spec["params"] = _TransformParamsSpec(ps.pop("params")) + pipeline_spec["params"] = TransformParamsSpec(ps.pop("params")) if "tasks" in ps: pipeline_spec["tasks"] = _TransformPipelineTasks(ps.pop("tasks")) if "results" in ps: @@ -160,7 +166,7 @@ def _TransformPipelineSpec(ps): return pipeline_spec -def _TransformParamsSpec(ps): +def TransformParamsSpec(ps): """Convert ParamsSpecs into Tekton yaml.""" param_spec = [] for p in ps: @@ -183,9 +189,9 @@ def _TransformTaskSpec(ts): """Convert TaskSpecs into Tekton yaml.""" task_spec = {} if "params" in ts: - task_spec["params"] = _TransformParamsSpec(ts.pop("params")) + task_spec["params"] = TransformParamsSpec(ts.pop("params")) if "steps" in ts: - task_spec["steps"] = ts.pop("steps") + task_spec["steps"] = _TransformSteps(ts.pop("steps")) if "stepTemplate" in ts: task_spec["stepTemplate"] = ts.pop("stepTemplate") if "results" in ts: @@ -197,6 +203,18 @@ def _TransformTaskSpec(ts): return task_spec +def _TransformSteps(steps): + """Convert Steps into Tekton yaml.""" + results = [] + for step in steps: + if "ref" in step: + step["ref"] = TransformRef(step.pop("ref")) + if "params" in step: + step["params"] = _TransformParams(step.pop("params")) + results.append(step) + return results + + def _TransformPipelineTasks(ts): """Convert PipelineTasks into Tekton yaml.""" tasks = [] @@ -249,6 +267,8 @@ def _TransformTaskResults(rs): result["type"] = r.pop("type").lower() if "properties" in r: result["properties"] = r.pop("properties") + if "value" in r: + result["value"] = _TransformParamValue(r.pop("value")) results.append(result) return results @@ -266,6 +286,16 @@ def _TransformPipelineRunResults(rs): return results +def _TransformStepStates(steps): + """Convert StepState into Tekton yaml.""" + step_states = [] + for s in steps: + if "results" in s: + s["results"] = _TransformTaskRunResults(s.pop("results")) + step_states.append(s) + return step_states + + def _TransformTaskRunResults(rs): """Convert TaskRunResults into Tekton yaml.""" results = [] @@ -346,25 +376,13 @@ def _TransformChildRefs(crs): return child_refs -def _TransformPipelineRef(pr): - """Convert PipelineRef into Tekton yaml.""" - pipeline_ref = {} - if "name" in pr: - pipeline_ref["name"] = pr.pop("name") - if "resolver" in pr: - pipeline_ref["resolver"] = pr.pop("resolver") - if "params" in pr: - pipeline_ref["params"] = _TransformParams(pr.pop("params")) - return pipeline_ref - - -def _TransformTaskRef(tr): - """Convert TaskRef into Tekton yaml.""" - task_ref = {} - if "name" in tr: - task_ref["name"] = tr.pop("name") - if "resolver" in tr: - task_ref["resolver"] = tr.pop("resolver") - if "params" in tr: - task_ref["params"] = _TransformParams(tr.pop("params")) - return task_ref +def TransformRef(ref): + """Convert a generic reference (step, task, or pipeline) into Tekton yaml.""" + result = {} + if "name" in ref: + result["name"] = ref.pop("name") + if "resolver" in ref: + result["resolver"] = ref.pop("resolver") + if "params" in ref: + result["params"] = _TransformParams(ref.pop("params")) + return result diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/cloudbuild/v2/workflow_output_util.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/cloudbuild/v2/workflow_output_util.py index 242f180efc..a6af2fc5b3 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/cloudbuild/v2/workflow_output_util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/cloudbuild/v2/workflow_output_util.py @@ -17,6 +17,7 @@ from __future__ import division from __future__ import unicode_literals +from googlecloudsdk.api_lib.cloudbuild.v2 import pipeline_output_util from googlecloudsdk.core import yaml from googlecloudsdk.core.resource import custom_printer_base @@ -30,20 +31,29 @@ def _WorkflowDisplayLines(self, workflow): """Apply formatting to the workflow for describe command.""" if "pipelineSpecYaml" in workflow: yaml_str = workflow.pop("pipelineSpecYaml") + workflow = self._updateWorkflowSpec(workflow, yaml_str) elif ( "pipelineSpec" in workflow and "generatedYaml" in workflow["pipelineSpec"] ): yaml_str = workflow["pipelineSpec"].pop("generatedYaml") del workflow["pipelineSpec"] - else: - return - data = yaml.load(yaml_str, round_trip=True) - workflow["pipeline"] = {"spec": data} + workflow = self._updateWorkflowSpec(workflow, yaml_str) + elif "ref" in workflow: + ref = workflow.pop("ref") + workflow["ref"] = pipeline_output_util.TransformRef(ref) + params = workflow.get("params", {}) + if params: + workflow["params"] = pipeline_output_util.TransformParamsSpec(params) yaml_str = yaml.dump(workflow, round_trip=True) return custom_printer_base.Lines(yaml_str.split("\n")) + def _updateWorkflowSpec(self, workflow, yaml_str): + data = yaml.load(yaml_str, round_trip=True) + workflow["pipeline"] = {"spec": data} + return workflow + def Transform(self, record): """Transform ApplicationStatus into the output structure of marker classes. diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_exceptions.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_exceptions.py new file mode 100644 index 0000000000..a5cf7a8280 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_exceptions.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +"""Errors for the compute VM instances Ops Agents commands.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.core import exceptions + + +class Error(exceptions.Error): + """Base exception for Ops Agents exceptions.""" + + +class PolicyError(Error): + """Base exception for Ops Agents policy exceptions.""" + + +class PolicyMalformedError(PolicyError): + """Raised when the specified Ops Agents policy is malformed.""" + + def __init__(self, policy_id, detail): + message = ( + 'Encountered a malformed policy: [{detail}].\nThe Ops Agents policy' + ' [{policy_id}] may have been modified directly by the OS Config guest' + ' policy API / gcloud commands. If so, please delete and re-create with' + ' the Ops Agents policy gcloud commands. If not, this may be an' + ' internal error.'.format(policy_id=policy_id, detail=detail) + ) + super(PolicyMalformedError, self).__init__(message) + + +class PolicyNotFoundError(PolicyError): + """Raised when the specified Ops Agents policy is not found.""" + + def __init__(self, policy_id): + message = 'Ops Agents policy [{policy_id}] not found.'.format( + policy_id=policy_id + ) + super(PolicyNotFoundError, self).__init__(message) + + +class PolicyValidationError(PolicyError): + """Raised when Ops Agents policy validation fails.""" + + +class PolicyValidationMultiError(PolicyValidationError): + """Raised when multiple Ops Agents policy validations fail.""" + + def __init__(self, errors): + super(PolicyValidationMultiError, self).__init__( + ' | '.join(sorted(str(error) for error in errors)) + ) + self.errors = set(errors) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_policy.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_policy.py index b812e99fea..e48872b490 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_policy.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_policy.py @@ -21,6 +21,8 @@ from typing import Any, Mapping, Optional from apitools.base.py import encoding +from googlecloudsdk.api_lib.compute.instances.ops_agents import cloud_ops_agents_exceptions as exceptions +from googlecloudsdk.core.resource import resource_property from googlecloudsdk.generated_clients.apis.osconfig.v1 import osconfig_v1_messages @@ -28,8 +30,6 @@ (enum.StrEnum,) if sys.version_info[:2] >= (3, 11) else (str, enum.Enum) ) -_OPS_AGENTS_POLICY_KEYS = frozenset({'agents_rule', 'instance_filter'}) - @dataclasses.dataclass(repr=False) class OpsAgentsPolicy(object): @@ -67,8 +67,16 @@ def __repr__(self) -> str: def ToJson(self) -> str: """JSON single line format string.""" + key_camel_cased_dict = { + resource_property.ConvertToCamelCase(key): value + for key, value in self.__dict__.items() + } + return json.dumps( - self.__dict__, separators=(',', ':'), default=str, sort_keys=True + key_camel_cased_dict, + separators=(',', ':'), + default=str, + sort_keys=True, ) agents_rule: AgentsRule @@ -78,8 +86,8 @@ def __repr__(self) -> str: """JSON single line format string representation for testing.""" policy_map = { - 'agents_rule': self.agents_rule, - 'instance_filter': encoding.MessageToPyValue(self.instance_filter), + 'agentsRule': self.agents_rule, + 'instanceFilter': encoding.MessageToPyValue(self.instance_filter), } return json.dumps( @@ -89,34 +97,60 @@ def __repr__(self) -> str: sort_keys=True, ) + # TODO: b/338214818 - Remove after printing StrEnums is fixed + def ToPyValue(self): + + policy_map = { + # Converting enum to string. + 'agentsRule': json.loads(self.agents_rule.ToJson()), + 'instanceFilter': encoding.MessageToPyValue(self.instance_filter), + } + + return policy_map + + +_OPS_AGENTS_POLICY_KEYS = frozenset( + resource_property.ConvertToCamelCase(f.name) + for f in dataclasses.fields(OpsAgentsPolicy) +) + def CreateAgentsRule( - agents_rule: Mapping[str, str] + agents_rule: Mapping[str, str], ) -> OpsAgentsPolicy.AgentsRule: """Create agents rule in ops agents policy. Args: - agents_rule: fields (version, package_state) describing agents rule from the + agents_rule: fields (version, packageState) describing agents rule from the command line. Returns: An OpsAgentPolicy.AgentsRule object. """ - if not agents_rule or 'package_state' not in agents_rule: - raise ValueError('agents_rule must contain package_state') + if not agents_rule or 'packageState' not in agents_rule: + raise exceptions.PolicyValidationError( + 'agentsRule must contain packageState' + ) if ( - agents_rule['package_state'] == 'installed' + agents_rule['packageState'] == 'installed' and 'version' not in agents_rule ): - raise ValueError('version is required when installing agents') - extra_keys = set(agents_rule) - {'package_state', 'version'} - if extra_keys: - raise ValueError('unknown keys in agents_rule: %s' % extra_keys) + raise exceptions.PolicyValidationError( + 'version is required when installing agents' + ) + unknown_keys = set(agents_rule) - { + resource_property.ConvertToCamelCase(f.name) + for f in dataclasses.fields(OpsAgentsPolicy.AgentsRule) + } + if unknown_keys: + raise exceptions.PolicyValidationError( + f'unknown OpsAgentsPolicy fields: {unknown_keys} in agentsRule' + ) return OpsAgentsPolicy.AgentsRule( version=agents_rule.get('version'), package_state=OpsAgentsPolicy.AgentsRule.PackageState( - agents_rule['package_state'] + agents_rule['packageState'] ), ) @@ -127,8 +161,8 @@ def CreateOpsAgentsPolicy( """Create Ops Agent Policy. Args: - ops_agents_policy: fields (agents_rule, instance_filter) describing ops - agents policy from the command line. + ops_agents_policy: fields (agentsRule, instanceFilter) describing ops agents + policy from the command line. Returns: Ops agents policy. @@ -138,15 +172,16 @@ def CreateOpsAgentsPolicy( not ops_agents_policy or ops_agents_policy.keys() != _OPS_AGENTS_POLICY_KEYS ): - raise ValueError( - 'ops_agents_policy must contain agents_rule and instance_filter' + raise exceptions.PolicyValidationError( + 'ops_agents_policy must contain ' + + ' and '.join(sorted(_OPS_AGENTS_POLICY_KEYS)) ) return OpsAgentsPolicy( - agents_rule=CreateAgentsRule(ops_agents_policy['agents_rule']), + agents_rule=CreateAgentsRule(ops_agents_policy['agentsRule']), instance_filter=encoding.PyValueToMessage( osconfig_v1_messages.OSPolicyAssignmentInstanceFilter, - ops_agents_policy['instance_filter'], + ops_agents_policy['instanceFilter'], ), ) @@ -169,17 +204,22 @@ def UpdateOpsAgentsPolicy( Updated ops agents policy. """ if update_ops_agents_policy is None: - raise ValueError('update_ops_agents_policy cannot be None') + raise exceptions.PolicyError('update_ops_agents_policy cannot be None') unknown_keys = set(update_ops_agents_policy) - _OPS_AGENTS_POLICY_KEYS if unknown_keys: - raise ValueError( + raise exceptions.PolicyValidationError( f'unknown OpsAgentsPolicy fields: {unknown_keys} in' ' update_ops_agents_policy' ) - agents_rule = update_ops_agents_policy.get('agents_rule') - instance_filter = update_ops_agents_policy.get('instance_filter') + agents_rule = update_ops_agents_policy.get('agentsRule') + instance_filter = update_ops_agents_policy.get('instanceFilter') + + if not (agents_rule or instance_filter): + raise exceptions.PolicyError( + 'update_ops_agents_policy must update at least one field' + ) if agents_rule is not None: updated_agents_rule = CreateAgentsRule(agents_rule) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_util.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_util.py new file mode 100644 index 0000000000..807d0e69a2 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/cloud_ops_agents_util.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +"""Util for cloud ops agents policy commands.""" + +import json + +from googlecloudsdk.api_lib.compute.instances.ops_agents import cloud_ops_agents_exceptions as exceptions +from googlecloudsdk.api_lib.compute.instances.ops_agents import cloud_ops_agents_policy + + +def GetAgentsRuleFromDescription( + description: str, +) -> cloud_ops_agents_policy.OpsAgentsPolicy.AgentsRule | None: + """Returns an agents rule from a OSPolicy description.""" + if description is None: + return None + description_parts = description.split(' | ', maxsplit=1) + if len(description_parts) < 2: + return None + try: + agents_rule_json = json.loads(description_parts[1]) + except json.JSONDecodeError: + return None + try: + return cloud_ops_agents_policy.CreateAgentsRule(agents_rule_json) + except exceptions.PolicyValidationError: + return None diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/converters/os_policy_assignment_to_cloud_ops_agents_policy_converter.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/converters/os_policy_assignment_to_cloud_ops_agents_policy_converter.py index f2533c3cbf..3e09b16c67 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/converters/os_policy_assignment_to_cloud_ops_agents_policy_converter.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/converters/os_policy_assignment_to_cloud_ops_agents_policy_converter.py @@ -14,9 +14,9 @@ # limitations under the License. """Converter related function for Ops Agents Policy.""" -import json - +from googlecloudsdk.api_lib.compute.instances.ops_agents import cloud_ops_agents_exceptions as exceptions from googlecloudsdk.api_lib.compute.instances.ops_agents import cloud_ops_agents_policy as agents_policy +from googlecloudsdk.api_lib.compute.instances.ops_agents import cloud_ops_agents_util as util from googlecloudsdk.generated_clients.apis.osconfig.v1 import osconfig_v1_messages as osconfig @@ -26,15 +26,18 @@ def ConvertOsPolicyAssignmentToCloudOpsAgentPolicy( """Converts OS Config guest policy to Ops Agent policy.""" instance_filter = os_policy_assignment.instanceFilter + policy_id = os_policy_assignment.name.rsplit('/', 1)[-1] if len(os_policy_assignment.osPolicies) > 1: - raise ValueError('Multiple OS Policies found.') + raise exceptions.PolicyMalformedError( + policy_id, 'Multiple OS Policies found' + ) description = os_policy_assignment.osPolicies[0].description - try: - agents_rule_str = description.split(' | ', maxsplit=1)[1] - agents_rule = json.loads(agents_rule_str) - except (IndexError, ValueError, AttributeError) as e: - raise ValueError('Malformed OS Policy: %s' % description) from e + agents_rule = util.GetAgentsRuleFromDescription(description) + if agents_rule is None: + raise exceptions.PolicyMalformedError( + policy_id, 'Parsing description failed: %s' % description + ) return agents_policy.OpsAgentsPolicy( agents_rule=agents_rule, diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/validators/cloud_ops_agents_policy_validator.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/validators/cloud_ops_agents_policy_validator.py new file mode 100644 index 0000000000..b53976f294 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/instances/ops_agents/validators/cloud_ops_agents_policy_validator.py @@ -0,0 +1,336 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +"""Common validators for cloud ops agents policy create and update commands.""" + +from collections.abc import Set +import enum +import re +import sys + +from googlecloudsdk.api_lib.compute.instances.ops_agents import cloud_ops_agents_exceptions as exceptions +from googlecloudsdk.api_lib.compute.instances.ops_agents import cloud_ops_agents_policy as agents_policy +from googlecloudsdk.api_lib.compute.instances.ops_agents import cloud_ops_agents_util as util +from googlecloudsdk.core import log +from googlecloudsdk.generated_clients.apis.osconfig.v1 import osconfig_v1_messages as osconfig + + +_VERSION_RE = re.compile( + '|'.join(( + 'latest', + r'2\.\*\.\*', # Pinned major version. + r'2\.\d+\.\d+', # Pinned version. + )) +) +_SUPPORTED_OS_SHORT_NAMES_AND_VERSIONS = { + 'centos': { + '7', + '8', + }, + 'rhel': { + '7', + '8', + '9', + }, + 'rocky': { + '8', + '9', + }, + 'sles': { + '12', + '15', + }, + 'debian': { + '10', + '11', + '12', + }, + 'ubuntu': { + '18.04', + '20.04', + '22.04', + '23.10', + }, + 'windows': { + '10', + '6', + }, +} + +_SUPPORTED_PACKAGE_STATE = frozenset({ + 'installed', + 'removed', +}) + +_StrEnum = ( + (enum.StrEnum,) if sys.version_info[:2] >= (3, 11) else (str, enum.Enum) +) + + +class AgentsInstanceFilterConflictErrorMessage(*_StrEnum): + ALL_TRUE = ( + 'No other values can be declared under if instance_filter if all is set' + ' to true' + ) + EMPTY_INSTANCE_FILTER = ( + 'There should be at least a single value in either' + ' instanceFilter.inclusionLabels, instanceFilter.exclusionLabels or' + ' instanceFilter.inventories' + ) + + +class AgentsVersionInvalidFormatError(exceptions.PolicyValidationError): + """Raised when agents version format is invalid.""" + + def __init__(self, version): + super(AgentsVersionInvalidFormatError, self).__init__( + 'The agents version [{}] is not allowed. Expected values: [latest], ' + 'or anything in the format of ' + '[MAJOR_VERSION.MINOR_VERSION.PATCH_VERSION] or ' + '[MAJOR_VERSION.*.*].'.format(version) + ) + + +class AgentsPackageStateInvalidFormatError(exceptions.PolicyValidationError): + """Raised when agents package_state format is invalid.""" + + def __init__(self, package_state): + super(AgentsPackageStateInvalidFormatError, self).__init__( + 'The agents package_state [{}] is not allowed. Expected values: [true]' + ' or [false] '.format(package_state) + ) + + +class AgentsInstanceFilterEmptyError(exceptions.PolicyValidationError): + """Raised when instance_filter is empty.""" + + def __init__(self): + super(AgentsInstanceFilterEmptyError, self).__init__( + 'instanceFilter cannot be empty' + ) + + +class AgentsInstanceFilterConflictError(exceptions.PolicyValidationError): + """Raised when an invalid instance_filter is created.""" + + def __init__(self, error_message: AgentsInstanceFilterConflictErrorMessage): + super(AgentsInstanceFilterConflictError, self).__init__( + 'Invalid instanceFilter: {}'.format(error_message) + ) + + +class AgentsOsTypeNotSupportedError(exceptions.PolicyValidationError): + """Raised when agents OS type is not supported.""" + + def __init__(self, short_name: str, version: str): + super(AgentsOsTypeNotSupportedError, self).__init__( + 'The combination of short name [{}] and version [{}] is not supported. ' + 'The supported versions are: {}.'.format( + short_name, + version, + '; '.join( + '%s %s' % (k, ','.join(sorted(v))) + for k, v in sorted( + _SUPPORTED_OS_SHORT_NAMES_AND_VERSIONS.items() + ) + ), + ) + ) + + +def ValidateOpsAgentsPolicy(policy: agents_policy.OpsAgentsPolicy): + """Validates semantics of a Cloud Ops agents policy. + + This validation happens after the arg parsing stage. At this point, we can + assume that the field is an OpsAgentsPolicy object. + + Args: + policy: ops_agents.OpsAgentPolicy. The policy that manages Ops agents. + + Raises: + PolicyValidationMultiError that contains a list of validation + errors from the following list. + * AgentsVersionInvalidFormatError: + Agents version format is invalid. + * AgentsPackageStateInvalidFormatError: + Agents package_state format is invalid. + * AgentsInstanceFilterEmptyError: + Instance filter format is empty. + * AgentsInstanceFilterConflictError: + Instance filter must have all set to true with nothing else added or there + should be at least a single value in either + inclusionLabels, exclusionLabels or + inventories + * AgentsOsTypeNotSupportedError: + The combination of the OS short name and version is not supported. + """ + errors = _ValidateAgentRules(policy.agents_rule) + _ValidateInstanceFilter( + policy.instance_filter + ) + if errors: + raise exceptions.PolicyValidationMultiError(errors) + log.debug(f'Cloud Ops Agents policy validation passed.\n{policy}') + + +def _ValidateAgentRules(agents_rule: agents_policy.OpsAgentsPolicy.AgentsRule): + return _ValidateAgentsRuleVersion( + agents_rule.version, agents_rule.package_state + ) + _ValidateAgentsRulePackageState(agents_rule.package_state) + + +def _ValidateAgentsRuleVersion( + version: str, + package_state: str, +) -> Set[AgentsVersionInvalidFormatError]: + if not ( + version == 'latest' + or (package_state == 'removed' and not version) + or _VERSION_RE.fullmatch(version) + ): + return [AgentsVersionInvalidFormatError(version)] + return [] + + +def _ValidateAgentsRulePackageState( + package_state: str, +) -> Set[AgentsPackageStateInvalidFormatError]: + if package_state not in _SUPPORTED_PACKAGE_STATE: + return [AgentsPackageStateInvalidFormatError(package_state)] + return [] + + +def _ValidateInstanceFilter( + instance_filter: osconfig.OSPolicyAssignmentInstanceFilter, +): + return ( + _ValidateInstanceFilterIsNotEmpty(instance_filter) + + _ValidateInstanceFilterAllTrue(instance_filter) + + _ValidateInstanceFilterAllFalse(instance_filter) + + _ValidateInventories(instance_filter) + ) + + +def _ValidateInstanceFilterIsNotEmpty( + instance_filter: osconfig.OSPolicyAssignmentInstanceFilter, +) -> Set[AgentsInstanceFilterEmptyError]: + return [] if instance_filter else [AgentsInstanceFilterEmptyError()] + + +def _ValidateInstanceFilterAllTrue( + instance_filter: osconfig.OSPolicyAssignmentInstanceFilter, +) -> Set[AgentsInstanceFilterConflictError]: + """Validates that if instance_filter.all is true no other values are present. + + Args: + instance_filter: cloud ops agents instance filter. + + Returns: + An empty list if the validation passes. A singleton list with the following + error if the validation fails. + * AgentsInstanceFilterConflictError: + Instance filter must have all set to true with nothing else added or there + should be at least a single value in either inclusionLabels, + exclusionLabels or inventories. + """ + if instance_filter.all and ( + instance_filter.inclusionLabels + or instance_filter.exclusionLabels + or instance_filter.inventories + ): + return [ + AgentsInstanceFilterConflictError( + AgentsInstanceFilterConflictErrorMessage.ALL_TRUE + ) + ] + return [] + + +def _ValidateInstanceFilterAllFalse( + instance_filter: osconfig.OSPolicyAssignmentInstanceFilter, +) -> Set[AgentsInstanceFilterConflictError]: + """Validates that if instance_filter.all is false that there is a value in either inclusionLabels, exclusionLabels, or inventories. + + Args: + instance_filter: cloud ops agents instance filter. + + Returns: + An empty list if the validation passes. A singleton list with the following + error if the validation fails. + * AgentsInstanceFilterConflictError: + There should be at least a single value in either inclusionLabels, + exclusionLabels or inventories. + """ + if ( + not instance_filter.all + and not instance_filter.inclusionLabels + and not instance_filter.exclusionLabels + and not instance_filter.inventories + ): + return [ + AgentsInstanceFilterConflictError( + AgentsInstanceFilterConflictErrorMessage.EMPTY_INSTANCE_FILTER + ) + ] + return [] + + +def _ValidateInventories( + instance_filter: osconfig.OSPolicyAssignmentInstanceFilter, +) -> Set[AgentsOsTypeNotSupportedError]: + """Validates that inventories only contain Ops Agents supported OS types and version. + + Args: + instance_filter: cloud ops agents instance filter. + + Returns: + An empty list if the validation passes. A list with the following + error if the validation fails. + * AgentsOsTypeNotSupportedError: + The combination of the OS short name and version is not supported. + """ + errors = [] + for inventory in instance_filter.inventories: + if not ( + inventory.osShortName in _SUPPORTED_OS_SHORT_NAMES_AND_VERSIONS + and inventory.osVersion + in _SUPPORTED_OS_SHORT_NAMES_AND_VERSIONS[inventory.osShortName] + ): + errors.append( + AgentsOsTypeNotSupportedError( + inventory.osShortName, inventory.osVersion + ) + ) + return errors + + +def IsCloudOpsAgentsPolicy(policy: osconfig.OSPolicyAssignment) -> bool: + """Returns whether the policy was created with the Ops Agent command. + """ + instance_filter = policy.instanceFilter + if len(policy.osPolicies) > 1: + return False + + agents_rule = util.GetAgentsRuleFromDescription( + policy.osPolicies[0].description + ) + if agents_rule is None: + return False + + try: + ValidateOpsAgentsPolicy( + agents_policy.OpsAgentsPolicy(agents_rule, instance_filter) + ) + except exceptions.PolicyValidationError: + return False + return True diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/storage_pools/list_formatter.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/storage_pools/list_formatter.py index ae2f894564..e04839864f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/storage_pools/list_formatter.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/compute/storage_pools/list_formatter.py @@ -45,6 +45,7 @@ def format_for_listing(pool_list, _): Args: pool_list: list of storage pools. + Returns: the inputted pool list, with the added fields containing new formatting. """ @@ -55,8 +56,8 @@ def _format_single(pool): """Format a single pool for displaying it in the list response.""" _add_types(pool) _add_capacity(pool) - _maybe_add_iops(pool) - _maybe_add_throughput(pool) + _add_iops(pool) + _add_throughput(pool) return pool @@ -66,6 +67,7 @@ def _add_capacity(pool): Args: pool: the serializable storage pool + Returns: nothing, it changes the input value. """ @@ -84,15 +86,23 @@ def _add_capacity(pool): pool["formattedCapacity"] = formatted_capacity -def _maybe_add_iops(pool): +def _add_iops(pool): """Add iops formatting. Args: pool: the serializable storage pool + Returns: nothing, it changes the input value. """ if not pool.get("poolProvisionedIops"): + pool["formattedIops"] = "" + return + + if not pool.get("status", {}).get("poolUsedIops"): + pool["formattedIops"] = "{:,}".format( + int(pool["poolProvisionedIops"]) + ) return provisioned_iops = int(pool["poolProvisionedIops"]) @@ -105,15 +115,23 @@ def _maybe_add_iops(pool): pool["formattedIops"] = formatted_iops -def _maybe_add_throughput(pool): +def _add_throughput(pool): """Add throughput formatting. Args: pool: the serializable storage pool + Returns: nothing, it changes the input value. """ if not pool.get("poolProvisionedThroughput"): + pool["formattedThroughput"] = "" + return + + if not pool.get("status", {}).get("poolUsedThroughput"): + pool["formattedThroughput"] = "{:,}".format( + int(pool["poolProvisionedThroughput"]) + ) return provisioned_throughput = int(pool["poolProvisionedThroughput"]) @@ -133,6 +151,7 @@ def _add_types(pool): Args: pool: the serializable storage pool + Returns: nothing, it changes the input value. """ @@ -150,6 +169,7 @@ def _format_pool_type(pool): Args: pool: the serializable storage pool + Returns: the formatted string """ @@ -171,6 +191,7 @@ def _format_capacity_provisioning_type(pool): Args: pool: the serializable storage pool + Returns: the abbreviated string """ @@ -184,6 +205,7 @@ def _format_perf_provisioning_type(pool): Args: pool: the serializable storage pool + Returns: the abbreviated string """ diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/api_adapter.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/api_adapter.py index 8582de9f56..ac51f78535 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/api_adapter.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/api_adapter.py @@ -356,6 +356,7 @@ STATEFULSET = 'STATEFULSET' CADVISOR = 'CADVISOR' KUBELET = 'KUBELET' +DCGM = 'DCGM' LOGGING_OPTIONS = [ NONE, SYSTEM, @@ -380,6 +381,7 @@ STATEFULSET, CADVISOR, KUBELET, + DCGM, ] PRIMARY_LOGS_OPTIONS = [ APISERVER, @@ -726,6 +728,8 @@ def __init__( enable_secret_manager=None, enable_cilium_clusterwide_network_policy=None, storage_pools=None, + enable_ray_cluster_logging=None, + enable_ray_cluster_monitoring=None, ): self.node_machine_type = node_machine_type self.node_source_image = node_source_image @@ -951,6 +955,12 @@ def __init__( self.enable_cilium_clusterwide_network_policy = ( enable_cilium_clusterwide_network_policy ) + self.enable_ray_cluster_logging = ( + enable_ray_cluster_logging + ) + self.enable_ray_cluster_monitoring = ( + enable_ray_cluster_monitoring + ) class UpdateClusterOptions(object): @@ -1098,6 +1108,8 @@ def __init__( enable_cilium_clusterwide_network_policy=None, enable_insecure_kubelet_readonly_port=None, autoprovisioning_enable_insecure_kubelet_readonly_port=None, + enable_ray_cluster_logging=None, + enable_ray_cluster_monitoring=None, ): self.version = version self.update_master = bool(update_master) @@ -1254,6 +1266,12 @@ def __init__( self.autoprovisioning_enable_insecure_kubelet_readonly_port = ( autoprovisioning_enable_insecure_kubelet_readonly_port ) + self.enable_ray_cluster_logging = ( + enable_ray_cluster_logging + ) + self.enable_ray_cluster_monitoring = ( + enable_ray_cluster_monitoring + ) class SetMasterAuthOptions(object): @@ -1882,6 +1900,18 @@ def CreateClusterCommon(self, cluster_ref, options): raise util.Error(CONFIGCONNECTOR_WORKLOAD_IDENTITY_DISABLED_ERROR_MSG) addons.configConnectorConfig = self.messages.ConfigConnectorConfig( enabled=True) + if options.enable_ray_cluster_logging is not None: + addons.rayOperatorConfig.rayClusterLoggingConfig = ( + self.messages.RayClusterLoggingConfig( + enabled=options.enable_ray_cluster_logging + ) + ) + if options.enable_ray_cluster_monitoring is not None: + addons.rayOperatorConfig.rayClusterMonitoringConfig = ( + self.messages.RayClusterMonitoringConfig( + enabled=options.enable_ray_cluster_monitoring + ) + ) cluster.addonsConfig = addons self.ParseMasterAuthorizedNetworkOptions(options, cluster) @@ -3439,10 +3469,32 @@ def UpdateClusterCommon(self, cluster_ref, options): self.messages.RayOperatorConfig( enabled=not options.disable_addons.get(RAYOPERATOR))) update = self.messages.ClusterUpdate(desiredAddonsConfig=addons) + elif ( + options.enable_ray_cluster_logging is not None + or options.enable_ray_cluster_monitoring is not None + ): + addons = self._AddonsConfig(options, self.messages) + + if options.enable_ray_cluster_logging is not None: + addons.rayOperatorConfig.rayClusterLoggingConfig = ( + self.messages.RayClusterLoggingConfig( + enabled=options.enable_ray_cluster_logging + ) + ) + + if options.enable_ray_cluster_monitoring is not None: + addons.rayOperatorConfig.rayClusterMonitoringConfig = ( + self.messages.RayClusterMonitoringConfig( + enabled=options.enable_ray_cluster_monitoring + ) + ) + + update = self.messages.ClusterUpdate(desiredAddonsConfig=addons) elif options.enable_autoscaling is not None: # For update, we can either enable or disable. autoscaling = self.messages.NodePoolAutoscaling( - enabled=options.enable_autoscaling) + enabled=options.enable_autoscaling + ) if options.enable_autoscaling: autoscaling.minNodeCount = options.min_nodes autoscaling.maxNodeCount = options.max_nodes @@ -5483,6 +5535,56 @@ def ModifyBinaryAuthorization( update=update)) return self.ParseOperation(op.name, cluster_ref.zone) + def ModifyRayClusterLoggingConfig( + self, cluster_ref, enable_ray_cluster_logging + ): + """Enables Ray cluster log collection when using RayOperator addon.""" + + ray_operator_config = self.messages.RayOperatorConfig( + enabled=True, + rayClusterLoggingConfig=self.messages.RayClusterLoggingConfig( + enabled=enable_ray_cluster_logging + ), + ) + addons_config = self.messages.AddonsConfig( + rayOperatorConfig=ray_operator_config + ) + update = self.messages.ClusterUpdate(desiredAddonsConfig=addons_config) + op = self.client.projects_locations_clusters.Update( + self.messages.UpdateClusterRequest( + name=ProjectLocationCluster( + cluster_ref.projectId, cluster_ref.zone, cluster_ref.clusterId + ), + update=update, + ) + ) + return self.ParseOperation(op.name, cluster_ref.zone) + + def ModifyRayClusterMonitoringConfig( + self, cluster_ref, enable_ray_cluster_monitoring + ): + """Enables Ray cluster metrics collection when using RayOperator addon.""" + + ray_operator_config = self.messages.RayOperatorConfig( + enabled=True, + rayClusterMonitoringConfig=self.messages.RayClusterMonitoringConfig( + enabled=enable_ray_cluster_monitoring + ), + ) + addons_config = self.messages.AddonsConfig( + rayOperatorConfig=ray_operator_config + ) + update = self.messages.ClusterUpdate(desiredAddonsConfig=addons_config) + op = self.client.projects_locations_clusters.Update( + self.messages.UpdateClusterRequest( + name=ProjectLocationCluster( + cluster_ref.projectId, cluster_ref.zone, cluster_ref.clusterId + ), + update=update, + ) + ) + return self.ParseOperation(op.name, cluster_ref.zone) + class V1Adapter(APIAdapter): """APIAdapter for v1.""" @@ -7088,6 +7190,10 @@ def _GetMonitoringConfig(options, messages): comp.enableComponents.append( messages.MonitoringComponentConfig .EnableComponentsValueListEntryValuesEnum.KUBELET) + if DCGM in options.monitoring: + comp.enableComponents.append( + messages.MonitoringComponentConfig + .EnableComponentsValueListEntryValuesEnum.DCGM) config.componentConfig = comp diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/fleet/debug_util.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/fleet/debug_util.py index dc496703b6..5478585de6 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/fleet/debug_util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/fleet/debug_util.py @@ -23,6 +23,8 @@ from googlecloudsdk.core import exceptions from googlecloudsdk.core import properties +location = None + def ContextGenerator(args): """Generate k8s context from membership, location and project.""" @@ -31,10 +33,13 @@ def ContextGenerator(args): ) membership_id = fleet_util.MembershipShortname(membership_resource_name) project_id = args.project + global location location = args.location if project_id is None: # read the default projectId from local configuration file project_id = properties.VALUES.core.project.Get() + if location is None: + location = fleet_util.MembershipLocation(membership_resource_name) # fetch clusterName from fleet API @@ -97,7 +102,7 @@ def MeshInfoGenerator(args): ) if matcher is None: continue - if matcher.group(2) != args.location or matcher.group(3) != args.membership: + if matcher.group(2) != location or matcher.group(3) != args.membership: continue else: matcher_new = re.match(r'.+/meshes/(.*)', mesh_info.name) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/fleet/gkehub_api_adapter.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/fleet/gkehub_api_adapter.py index a9526de565..f95b0807f4 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/fleet/gkehub_api_adapter.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/fleet/gkehub_api_adapter.py @@ -23,7 +23,6 @@ from __future__ import unicode_literals -from apitools.base.py import encoding from googlecloudsdk.api_lib.container import api_adapter from googlecloudsdk.api_lib.util import apis as core_apis from googlecloudsdk.core import resources as cloud_resources @@ -95,14 +94,6 @@ def GenerateConnectAgentManifest(self, option): """ client = core_apis.GetClientInstance(API_NAME, self.api_version) messages = core_apis.GetMessagesModule(API_NAME, self.api_version) - encoding.AddCustomJsonFieldMapping( - messages - .GkehubProjectsLocationsMembershipsGenerateConnectManifestRequest, - 'connectAgent_namespace', 'connectAgent.namespace') - encoding.AddCustomJsonFieldMapping( - messages - .GkehubProjectsLocationsMembershipsGenerateConnectManifestRequest, - 'connectAgent_proxy', 'connectAgent.proxy') return self._ManifestResponse(client, messages, option) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkemulticloud/locations.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkemulticloud/locations.py index 7e514a9452..e49f44a266 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkemulticloud/locations.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkemulticloud/locations.py @@ -17,7 +17,6 @@ from __future__ import division from __future__ import unicode_literals -from apitools.base.py import encoding from googlecloudsdk.api_lib.container.gkemulticloud import client from googlecloudsdk.command_lib.container.attached import flags as attached_flags @@ -63,18 +62,6 @@ def GenerateInstallManifest(self, cluster_ref, args): attached_flags.GetProxySecretNamespace(args), ) - # This is a workaround for the limitation in apitools with nested messages. - encoding.AddCustomJsonFieldMapping( - self._messages.GkemulticloudProjectsLocationsGenerateAttachedClusterInstallManifestRequest, - 'proxyConfig_kubernetesSecret_name', - 'proxyConfig.kubernetesSecret.name', - ) - encoding.AddCustomJsonFieldMapping( - self._messages.GkemulticloudProjectsLocationsGenerateAttachedClusterInstallManifestRequest, - 'proxyConfig_kubernetesSecret_namespace', - 'proxyConfig.kubernetesSecret.namespace', - ) - return self._service.GenerateAttachedClusterInstallManifest(req) def GenerateInstallManifestForImport( @@ -90,15 +77,4 @@ def GenerateInstallManifestForImport( attached_flags.GetProxySecretNamespace(args), ) - # This is a workaround for the limitation in apitools with nested messages. - encoding.AddCustomJsonFieldMapping( - self._messages.GkemulticloudProjectsLocationsGenerateAttachedClusterInstallManifestRequest, - 'proxyConfig_kubernetesSecret_name', - 'proxyConfig.kubernetesSecret.name', - ) - encoding.AddCustomJsonFieldMapping( - self._messages.GkemulticloudProjectsLocationsGenerateAttachedClusterInstallManifestRequest, - 'proxyConfig_kubernetesSecret_namespace', - 'proxyConfig.kubernetesSecret.namespace', - ) return self._service.GenerateAttachedClusterInstallManifest(req) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/bare_metal_admin_clusters.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/bare_metal_admin_clusters.py index bd189562cd..b4edf7c04f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/bare_metal_admin_clusters.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/bare_metal_admin_clusters.py @@ -18,7 +18,6 @@ from __future__ import division from __future__ import unicode_literals -from apitools.base.py import encoding from apitools.base.py import list_pager from googlecloudsdk.api_lib.container.gkeonprem import client from googlecloudsdk.api_lib.container.gkeonprem import update_mask @@ -600,13 +599,6 @@ def QueryVersionConfig(self, args: parser_extensions.Namespace): 'parent': self._location_ref(args).RelativeName(), } - # This is a workaround for the limitation in apitools with nested messages. - encoding.AddCustomJsonFieldMapping( - messages.GkeonpremProjectsLocationsBareMetalAdminClustersQueryVersionConfigRequest, - 'upgradeConfig_clusterName', - 'upgradeConfig.clusterName', - ) - req = messages.GkeonpremProjectsLocationsBareMetalAdminClustersQueryVersionConfigRequest( **kwargs ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/bare_metal_clusters.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/bare_metal_clusters.py index b2e93e39cc..f15b9b4c90 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/bare_metal_clusters.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/bare_metal_clusters.py @@ -20,7 +20,6 @@ from typing import Optional -from apitools.base.py import encoding from apitools.base.py import list_pager from googlecloudsdk.api_lib.container.gkeonprem import client from googlecloudsdk.api_lib.container.gkeonprem import update_mask @@ -1152,18 +1151,6 @@ def QueryVersionConfig(self, args: parser_extensions.Namespace): 'parent': self._location_ref(args).RelativeName(), } - # This is a workaround for the limitation in apitools with nested messages. - encoding.AddCustomJsonFieldMapping( - messages.GkeonpremProjectsLocationsBareMetalClustersQueryVersionConfigRequest, - 'createConfig_adminClusterMembership', - 'createConfig.adminClusterMembership', - ) - encoding.AddCustomJsonFieldMapping( - messages.GkeonpremProjectsLocationsBareMetalClustersQueryVersionConfigRequest, - 'upgradeConfig_clusterName', - 'upgradeConfig.clusterName', - ) - req = messages.GkeonpremProjectsLocationsBareMetalClustersQueryVersionConfigRequest( **kwargs ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/standalone_clusters.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/standalone_clusters.py index fab70a7b21..2c2255dda8 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/standalone_clusters.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/standalone_clusters.py @@ -18,7 +18,6 @@ from __future__ import division from __future__ import unicode_literals -from apitools.base.py import encoding from apitools.base.py import list_pager from googlecloudsdk.api_lib.container.gkeonprem import client from googlecloudsdk.api_lib.container.gkeonprem import update_mask @@ -1034,13 +1033,6 @@ def QueryVersionConfig(self, args: parser_extensions.Namespace): 'parent': self._location_ref(args).RelativeName(), } - # This is a workaround for the limitation in apitools with nested messages. - encoding.AddCustomJsonFieldMapping( - messages.GkeonpremProjectsLocationsBareMetalStandaloneClustersQueryVersionConfigRequest, - 'upgradeConfig_clusterName', - 'upgradeConfig.clusterName', - ) - req = messages.GkeonpremProjectsLocationsBareMetalStandaloneClustersQueryVersionConfigRequest( **kwargs ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/vmware_clusters.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/vmware_clusters.py index 2a43f796a2..80d7a745a9 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/vmware_clusters.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/container/gkeonprem/vmware_clusters.py @@ -20,7 +20,6 @@ from typing import Generator, Optional -from apitools.base.py import encoding from apitools.base.py import list_pager from googlecloudsdk.api_lib.container.gkeonprem import client from googlecloudsdk.api_lib.container.gkeonprem import update_mask @@ -208,18 +207,6 @@ def QueryVersionConfig( 'parent': self._location_ref(args).RelativeName(), } - # This is a workaround for the limitation in apitools with nested messages. - encoding.AddCustomJsonFieldMapping( - messages.GkeonpremProjectsLocationsVmwareClustersQueryVersionConfigRequest, - 'createConfig_adminClusterMembership', - 'createConfig.adminClusterMembership', - ) - encoding.AddCustomJsonFieldMapping( - messages.GkeonpremProjectsLocationsVmwareClustersQueryVersionConfigRequest, - 'upgradeConfig_clusterName', - 'upgradeConfig.clusterName', - ) - req = messages.GkeonpremProjectsLocationsVmwareClustersQueryVersionConfigRequest( **kwargs ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/dataflow/apis.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/dataflow/apis.py index 7141095777..06237f1a91 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/dataflow/apis.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/dataflow/apis.py @@ -434,22 +434,6 @@ class Templates: 'python3-template-launcher-base:latest') FLEX_TEMPLATE_GO_BASE_IMAGE = ('gcr.io/dataflow-templates-base/' 'go-template-launcher-base:latest') - # Mapping of apitools request message fields to their json parameters - _CUSTOM_JSON_FIELD_MAPPINGS = { - 'dynamicTemplate_gcsPath': 'dynamicTemplate.gcsPath', - 'dynamicTemplate_stagingLocation': 'dynamicTemplate.stagingLocation' - } - - # message fields. - @staticmethod - def ModifyDynamicTemplatesLaunchRequest(req): - """Add Api field query string mappings to req.""" - updated_request_type = type(req) - for req_field, mapped_param in Templates._CUSTOM_JSON_FIELD_MAPPINGS.items( - ): - encoding.AddCustomJsonFieldMapping(updated_request_type, req_field, - mapped_param) - return req @staticmethod def GetService(): @@ -570,8 +554,6 @@ def LaunchDynamicTemplate(template_args=None): projectId=template_args.project_id or GetProject(), validateOnly=False) - Templates.ModifyDynamicTemplatesLaunchRequest(request) - try: return Templates.GetService().Launch(request) except apitools_exceptions.HttpError as error: diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/edge_cloud/container/cluster.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/edge_cloud/container/cluster.py index e6c53c1624..a0685bac15 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/edge_cloud/container/cluster.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/edge_cloud/container/cluster.py @@ -195,6 +195,10 @@ def PopulateClusterAlphaMessage(req, messages, args): json.dumps(args.offline_reboot_ttl) + 's' ) resource_args.SetExternalLoadBalancerAddressPoolsConfig(args, req) + if flags.FlagIsExplicitlySet(args, 'control_plane_node_storage_schema'): + req.cluster.controlPlane.local.controlPlaneNodeStorageSchema = ( + args.control_plane_node_storage_schema + ) def IsLCPCluster(args): diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/edge_cloud/container/nodepool.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/edge_cloud/container/nodepool.py index 45618b4ea7..b717a48ecb 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/edge_cloud/container/nodepool.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/edge_cloud/container/nodepool.py @@ -15,6 +15,7 @@ """Helpers for the container node pool related commands.""" from googlecloudsdk.api_lib.edge_cloud.container import util +from googlecloudsdk.calliope import base from googlecloudsdk.command_lib.run import flags from googlecloudsdk.command_lib.util.args import labels_util from googlecloudsdk.core import resources @@ -70,6 +71,8 @@ def GetNodePoolCreateRequest(args, release_track): parent=node_pool_ref.Parent().RelativeName(), ) PopulateNodePoolCreateMessage(req, messages, args) + if release_track == base.ReleaseTrack.ALPHA: + PopulateNodePoolCreateAlphaMessage(req, messages, args) return req @@ -131,6 +134,20 @@ def PopulateNodePoolCreateMessage(req, messages, args): req.nodePool.nodeConfig.labels.additionalProperties.append(v) +def PopulateNodePoolCreateAlphaMessage(req, messages, args): + """Filled the Alpha node pool message from command arguments. + + Args: + req: create node pool request message. + messages: message module of edgecontainer node pool. + args: command line arguments. + """ + if flags.FlagIsExplicitlySet(args, 'node_storage_schema'): + if not req.nodePool.nodeConfig: + req.nodePool.nodeConfig = messages.NodeConfig() + req.nodePool.nodeConfig.nodeStorageSchema = args.node_storage_schema + + def PopulateNodePoolUpdateMessage( req, messages, args, update_mask_pieces, existing_node_pool ): diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/firestore/databases.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/firestore/databases.py index 465d460e24..0392b1edbe 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/firestore/databases.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/firestore/databases.py @@ -103,11 +103,12 @@ def DeleteDatabase(project, database, etag): ) -def ListDatabases(project): +def ListDatabases(project, show_deleted): """Lists all Firestore databases under the project. Args: project: the project ID to list databases, a string. + show_deleted: if true, also returns deleted resources, a boolean. Returns: a List of Databases. @@ -117,7 +118,8 @@ def ListDatabases(project): _GetDatabaseService() .List( messages.FirestoreProjectsDatabasesListRequest( - parent='projects/{}'.format(project) + parent='projects/{}'.format(project), + showDeleted=True if show_deleted else None, ) ) .databases diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/identity/cloudidentity_client.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/identity/cloudidentity_client.py index abb9fe6347..0d97171ebf 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/identity/cloudidentity_client.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/identity/cloudidentity_client.py @@ -17,8 +17,6 @@ from __future__ import division from __future__ import unicode_literals -from apitools.base.py import encoding - from googlecloudsdk.api_lib.util import apis API_NAME = 'cloudidentity' @@ -80,9 +78,6 @@ def LookupGroupName(version, email): client = GetClient(version) messages = GetMessages(version) - encoding.AddCustomJsonFieldMapping( - messages.CloudidentityGroupsLookupRequest, - 'groupKey_id', 'groupKey.id') return client.groups.Lookup( messages.CloudidentityGroupsLookupRequest(groupKey_id=email)) @@ -104,9 +99,6 @@ def LookupMembershipName(version, group_id, member_email): client = GetClient(version) messages = GetMessages(version) - encoding.AddCustomJsonFieldMapping( - messages.CloudidentityGroupsMembershipsLookupRequest, - 'memberKey_id', 'memberKey.id') return client.groups_memberships.Lookup( messages.CloudidentityGroupsMembershipsLookupRequest( memberKey_id=member_email, parent=group_id)) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/network_connectivity/networkconnectivity_api.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/network_connectivity/networkconnectivity_api.py index 5018303517..40117f0e2a 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/network_connectivity/networkconnectivity_api.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/network_connectivity/networkconnectivity_api.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- # -# Copyright 2022 Google LLC. All Rights Reserved. +# Copyright 2024 Google LLC. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -84,7 +84,7 @@ def List(self, limit=limit, batch_size_attribute='pageSize') - def CreateVPCSpoke(self, spoke_ref, spoke, request_id=None): + def CreateSpoke(self, spoke_ref, spoke, request_id=None): """Call API to create a new spoke.""" parent = spoke_ref.Parent().RelativeName() spoke_id = spoke_ref.Name() @@ -94,7 +94,7 @@ def CreateVPCSpoke(self, spoke_ref, spoke, request_id=None): parent=parent, requestId=request_id, spoke=spoke, spokeId=spoke_id)) return self.spoke_service.Create(create_req) - def UpdateVPCSpoke(self, spoke_ref, spoke, update_mask, request_id=None): + def UpdateSpoke(self, spoke_ref, spoke, update_mask, request_id=None): """Call API to update a existing spoke.""" name = spoke_ref.RelativeName() update_mask_string = ','.join(update_mask) diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/scc/manage/services/clients.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/scc/manage/services/clients.py index 0dda87bb73..ad4f0fbab9 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/scc/manage/services/clients.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/scc/manage/services/clients.py @@ -18,6 +18,8 @@ from apitools.base.py import list_pager from googlecloudsdk.api_lib.util import apis +from googlecloudsdk.command_lib.scc import util as scc_util +from googlecloudsdk.core import log from googlecloudsdk.generated_clients.apis.securitycentermanagement.v1 import securitycentermanagement_v1_messages as messages @@ -57,3 +59,32 @@ def List(self, page_size: int, parent: str, limit: int) -> Generator[ batch_size=page_size, batch_size_attribute='pageSize', ) + + def Update( + self, + name: str, + validate_only: bool, + module_config: messages.SecurityCenterService.ModulesValue, + enablement_state: messages.SecurityCenterService.IntendedEnablementStateValueValuesEnum, + update_mask: str, + ) -> messages.SecurityCenterService: + """Update a Security Center Service.""" + + security_center_service = messages.SecurityCenterService( + modules=module_config, + intendedEnablementState=enablement_state, + name=name, + ) + + req = messages.SecuritycentermanagementProjectsLocationsSecurityCenterServicesPatchRequest( + securityCenterService=security_center_service, + name=name, + updateMask=scc_util.CleanUpUserMaskInput(update_mask), + validateOnly=validate_only, + ) + response = self._client.Patch(req) + if validate_only: + log.status.Print('Request is valid.') + return response + log.UpdatedResource(name) + return response diff --git a/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/messages.py b/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/messages.py index 5d82fd1c37..3a92c35d46 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/messages.py @@ -168,28 +168,3 @@ def DictToMessageWithErrorCheck(dict_, raise DecodeError.FromErrorPaths(message, errors) return message - - -# This is a fix for b/124063772 that does not require an extensive re-write of -# apitools client generation. You would call this method from either a -# declarative request hook or a Python API wrapper when building the request. -# Ex. -# request_type = messages.AddCustomJSONFieldMappingsToRequest( -# self.messages.MsgType, CUSTOM_MAPPINGS_DICT)) -# request = request_type(...) -def AddCustomJSONFieldMappingsToRequest(request_type, mappings): - """Adds CustomJsonFieldMappings to the provided request_type. - - Args: - request_type: (protorpc.messages.Message) request type for this API call - mappings: (dict) Map from Python field names to JSON field names to be - used on the wire. - - Returns: - Updated request class containing the desired custom JSON mappings. - """ - for req_field, mapped_param in mappings.items(): - _encoding.AddCustomJsonFieldMapping(message_type=request_type, - python_name=req_field, - json_name=mapped_param) - return request_type diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/artifacts/upgrade_util.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/artifacts/upgrade_util.py index b7f6124e39..7678528c50 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/artifacts/upgrade_util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/artifacts/upgrade_util.py @@ -20,7 +20,6 @@ import collections -from apitools.base.py import encoding from apitools.base.py import exceptions as apitools_exceptions import frozendict from googlecloudsdk.api_lib.artifacts import exceptions as ar_exceptions @@ -285,17 +284,6 @@ def analyze_iam_policy(permissions, resource, scope): service = client.v1 messages = asset.GetMessages() - encoding.AddCustomJsonFieldMapping( - messages.CloudassetAnalyzeIamPolicyRequest, - "analysisQuery_resourceSelector_fullResourceName", - "analysisQuery.resourceSelector.fullResourceName", - ) - encoding.AddCustomJsonFieldMapping( - messages.CloudassetAnalyzeIamPolicyRequest, - "analysisQuery_accessSelector_permissions", - "analysisQuery.accessSelector.permissions", - ) - return service.AnalyzeIamPolicy( messages.CloudassetAnalyzeIamPolicyRequest( analysisQuery_accessSelector_permissions=permissions, diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/artifacts/util.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/artifacts/util.py index 7092287df4..d192248c51 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/artifacts/util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/artifacts/util.py @@ -505,7 +505,7 @@ def GetGCRRepos(buckets, project): def RepoMsg(bucket): return bucket["repository"] - return map(RepoMsg, existing_buckets) + return list(map(RepoMsg, existing_buckets)) def GetExistingGCRBuckets(buckets, project): @@ -1177,7 +1177,7 @@ def SetupAuthForProject(project, repos, repos_with_buckets): """Sets up auth for all repos in the given project.""" missing_auth = False for repo in repos: - has_bucket = repo in repos_with_buckets + has_bucket = repo["repository"] in repos_with_buckets diffs_found, continue_auth_check = SetupAuthForRepository( project, project, repo["repository"], repo, has_bucket ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/backupdr/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/backupdr/flags.py index b613e06549..1b24f98b11 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/backupdr/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/backupdr/flags.py @@ -33,6 +33,18 @@ def LocationAttributeConfig(arg_name='location'): ) +def BackupVaultAttributeConfig(): + return concepts.ResourceParameterAttributeConfig( + name='backup-vault', help_text='The ID of the Backup Vault.' + ) + + +def DataSourceAttributeConfig(): + return concepts.ResourceParameterAttributeConfig( + name='data-source', help_text='The ID of the Data Source.' + ) + + def GetManagementServerResourceSpec(): return concepts.ResourceSpec( 'backupdr.projects.locations.managementServers', @@ -60,10 +72,6 @@ def GetBackupPlanResourceSpec(): resource_name='Backup Plan', locationsId=LocationAttributeConfig(), projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG, - backupPlansId=concepts.ResourceParameterAttributeConfig( - name='backup_plan', - help_text='some help text', - ), disable_auto_completers=False, ) @@ -78,6 +86,18 @@ def GetBackupPlanAssociationResourceSpec(): ) +def GetBackupResourceSpec(): + return concepts.ResourceSpec( + 'backupdr.projects.locations.backupVaults.dataSources.backups', + resource_name='Backup', + locationsId=LocationAttributeConfig(), + projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG, + backupVaultsId=BackupVaultAttributeConfig(), + dataSourcesId=DataSourceAttributeConfig(), + disable_auto_completers=False, + ) + + def AddManagementServerResourceArg(parser, help_text): """Adds an argument for management server to parser.""" name = 'management_server' @@ -100,6 +120,17 @@ def AddBackupPlanAssociationResourceArg(parser, help_text): ).AddToParser(parser) +def AddBackupResourceArg(parser, help_text): + """Adds an argument for backup to parser.""" + name = 'backup' + concept_parsers.ConceptParser.ForResource( + name, + GetBackupResourceSpec(), + help_text, + required=True, + ).AddToParser(parser) + + def AddCreateBackupPlanAssociationFlags(parser): """Adds flags required to create a backup plan association.""" concept_parsers.ConceptParser( diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/__init__.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/backupdr/restore/__init__.py similarity index 100% rename from google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/__init__.py rename to google-cloud-sdk/lib/googlecloudsdk/command_lib/backupdr/restore/__init__.py diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/backupdr/restore/compute_flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/backupdr/restore/compute_flags.py new file mode 100644 index 0000000000..1463d29760 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/backupdr/restore/compute_flags.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +"""Flags for backup-dr restore compute commands.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.calliope.concepts import concepts +from googlecloudsdk.command_lib.util.concepts import concept_parsers + + +def AddNameArg(parser, required=True): + parser.add_argument( + '--name', + type=str, + required=required, + help='Name of the restored Compute Instance.', + ) + + +def AddTargetZoneArg(parser, required=True): + parser.add_argument( + '--target-zone', + type=str, + required=required, + help='Zone where the target instance is restored.', + ) + + +def AddTargetProjectArg(parser, required=True): + name = '--target-project' + project_spec = concepts.ResourceSpec( + 'backupdr.projects', + resource_name='Target Project', + disable_auto_completers=False, + ) + + concept_parsers.ConceptParser.ForResource( + name, + project_spec, + 'Project where the restore should happen.', + required=required, + ).AddToParser(parser) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/builds/submit_util.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/builds/submit_util.py index f7449434c6..62f9907653 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/builds/submit_util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/builds/submit_util.py @@ -372,6 +372,18 @@ def SetSource( ) return build_config + if re.match( + r'projects/.*/locations/.*/connections/.*/gitRepositoryLinks/.*', source + ): + build_config.source = messages.Source( + developerConnectConfig=messages.DeveloperConnectConfig( + gitRepositoryLink=source, + dir=arg_dir, + revision=arg_revision, + ) + ) + return build_config + suffix = '.tgz' if source.startswith('gs://') or os.path.isfile(source): _, suffix = os.path.splitext(source) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/compute/vm_status_troubleshooter.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/compute/vm_status_troubleshooter.py index d18e7b5d5c..c63297e598 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/compute/vm_status_troubleshooter.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/compute/vm_status_troubleshooter.py @@ -19,7 +19,6 @@ from __future__ import unicode_literals import datetime -from apitools.base.py import encoding from cloudsdk.google.protobuf import timestamp_pb2 @@ -36,11 +35,6 @@ _API_COMPUTE_CLIENT_NAME = 'compute' _API_CLIENT_VERSION_V1 = 'v1' -_CUSTOM_JSON_FIELD_MAPPINGS = { - 'interval_startTime': 'interval.startTime', - 'interval_endTime': 'interval.endTime', -} - MONITORING_API = 'monitoring.googleapis.com' VM_STATUS_MESSAGE = ( @@ -152,12 +146,6 @@ def _CheckCpuStatus(self): def _GetCpuUtilization(self): """Get CPU utilization from Cloud Monitoring API.""" - # Mapping of apitools request message fields to json parameters. - for req_field, mapped_param in _CUSTOM_JSON_FIELD_MAPPINGS.items(): - encoding.AddCustomJsonFieldMapping( - self.monitoring_message.MonitoringProjectsTimeSeriesListRequest, - req_field, mapped_param) - request = self._CreateTimeSeriesListRequest(CPU_METRICS) response = self.monitoring_client.projects_timeSeries.List(request=request) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/flags.py index 49bd98a5a7..2628845110 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/flags.py @@ -6361,6 +6361,64 @@ def AddEnableRayOperatorFlag(parser, hidden=True): ) +def AddEnableRayClusterLogging(parser, hidden=True, is_update=False): + """Adds --enable-ray-cluster-logging flag to the given parser. + + Args: + parser: A given parser. + hidden: Indicates that the flags are hidden. + is_update: Whether the flag is used for an update operation. + """ + + help_text = """\ + Enable automatic log processing sidecar for Ray clusters. + """ + if is_update: + parser.add_argument( + '--enable-ray-cluster-logging', + action=arg_parsers.StoreTrueFalseAction, + help=help_text, + hidden=hidden, + ) + else: + parser.add_argument( + '--enable-ray-cluster-logging', + action='store_true', + default=None, + help=help_text, + hidden=hidden, + ) + + +def AddEnableRayClusterMonitoring(parser, hidden=True, is_update=False): + """Adds --enable-ray-cluster-monitoring flag to the given parser. + + Args: + parser: A given parser. + hidden: Indicates that the flags are hidden. + is_update: Whether the flag is used for an update operation. + """ + + help_text = """\ + Enable automatic metrics collection for Ray clusters. + """ + if is_update: + parser.add_argument( + '--enable-ray-cluster-monitoring', + action=arg_parsers.StoreTrueFalseAction, + help=help_text, + hidden=hidden, + ) + else: + parser.add_argument( + '--enable-ray-cluster-monitoring', + action='store_true', + default=None, + help=help_text, + hidden=hidden, + ) + + def AddConvertToAutopilotFlag(parser, hidden=True): """Adds --convert-to-autopilot flag to parser.""" diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/fleet/packages/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/fleet/packages/flags.py index b9919462d7..fcc59fb0e8 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/fleet/packages/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/fleet/packages/flags.py @@ -79,6 +79,18 @@ def AddLifecycleFlag(parser): ) +def AddVariantsPatternFlag(parser): + parser.add_argument( + '--variants-pattern', + required=False, + help="""Glob pattern to Variants of the Release, to be paired with the + ``--source'' arg. + ex: --source=/manifests-dir/ --variants-pattern=```**```, + --source=/manifests-dir/ --variants-pattern=us-```*```.yaml, + --source=/manifests/dir/ --variants-pattern=```*/*```.yaml""", + ) + + def ProjectAttributeConfig(): return concepts.ResourceParameterAttributeConfig( name='project', diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/fleet/packages/utils.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/fleet/packages/utils.py index 279596a26d..1a90bdf39f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/fleet/packages/utils.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/container/fleet/packages/utils.py @@ -65,10 +65,51 @@ def _VariantNameFromDir(path): def _SplitResourceBundleNameFromFleetPackage(fleet_package): - resource_bundle_name = fleet_package.resourceBundleSelector.resourceBundle + resource_bundle_name = ( + fleet_package.resourceBundleSelector.resourceBundle.name + ) return resource_bundle_name.split('/') +def _ExpandPathForUserAndVars(path): + user_expanded_path = os.path.expanduser(path) + vars_expanded_path = os.path.expandvars(user_expanded_path) + return vars_expanded_path + + +def GlobPatternFromSourceAndVariantsPattern(source, variants_pattern=None): + """Creates glob pattern by combining source and variants_pattern. + + Args: + source: Directory or source configuration file. + variants_pattern: Optional variants_pattern for use with source. + + Returns: + A glob_pattern for use with 'VariantsFromGlobPattern'. If source + is a directory, the pattern is applied within the directory. If source is + not a directory i.e., a file, the pattern is not applied. + + Ex: source=/cfg/, variants_pattern='*.yaml'; returns '/cfg/*.yaml'. + source=manifest.yaml, variants_pattern=*; returns manifest.yaml. + """ + if not variants_pattern: + return source + expanded_source = _ExpandPathForUserAndVars(source) + expanded_variants_pattern = _ExpandPathForUserAndVars(variants_pattern) + if os.path.isdir(expanded_source): + return os.path.join(expanded_source, expanded_variants_pattern) + else: + return expanded_source + + +def ValidateSource(source): + expanded_source = _ExpandPathForUserAndVars(source) + if not os.path.isdir(expanded_source) and not os.path.isfile(expanded_source): + raise ValueError( + f'Source must be a directory or file, got {expanded_source}.' + ) + + def ProjectFromFleetPackage(fleet_package): """Project segment parsed from Fleet Package file input.""" split_bundle = _SplitResourceBundleNameFromFleetPackage(fleet_package) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/edge_cloud/container/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/edge_cloud/container/flags.py index 9c7f19d75f..7361c8a22f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/edge_cloud/container/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/edge_cloud/container/flags.py @@ -340,6 +340,16 @@ def AddControlPlaneSharedDeploymentPolicy(parser): ) +def AddControlPlaneNodeStorageSchema(parser): + parser.add_argument( + '--control-plane-node-storage-schema', + help=""" + Name for the storage schema of control plane nodes. + """, + hidden=True, + ) + + def AddLROMaximumTimeout(parser): parser.add_argument( '--lro-timeout', @@ -461,6 +471,16 @@ def AddNodeLabels(parser): ) +def AddNodeStorageSchema(parser): + parser.add_argument( + '--node-storage-schema', + help=""" + Name for the storage schema of worker nodes. + """, + hidden=True, + ) + + def AddOfflineRebootTtL(parser): parser.add_argument( '--offline-reboot-ttl', diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/emulators/firestore_util.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/emulators/firestore_util.py index ced3d1bf69..fa4e026b59 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/emulators/firestore_util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/emulators/firestore_util.py @@ -69,6 +69,10 @@ def StartFirestoreEmulator(args, log_file=None): start_args.append('--database-mode=datastore-mode') else: start_args.append('--database-mode={0}'.format(args.database_mode)) + if args.import_data: + start_args.append('--import-data={0}'.format(args.import_data)) + if args.export_on_exit: + start_args.append('--export-on-exit={0}'.format(args.export_on_exit)) exec_args = ArgsForFirestoreEmulator(start_args) log.status.Print('Executing: {0}'.format(' '.join(exec_args))) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/functions/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/functions/flags.py index d55fb8a183..907457d476 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/functions/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/functions/flags.py @@ -950,7 +950,13 @@ def AddIgnoreFileFlag(parser): parser.add_argument( '--ignore-file', help=( - 'Override the .gcloudignore file and use the specified file instead.' + 'Override the .gcloudignore file in the source directory and use the' + ' specified file instead. By default, the source directory is your' + ' current directory. Note that it could be changed by the --source' + ' flag, in which case your .gcloudignore file will be searched in the' + ' overridden directory. For example, `--ignore-file=.mygcloudignore`' + ' combined with `--source=./mydir` would point to' + ' `./mydir/.mygcloudignore`' ), ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iam/iam_util.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/iam/iam_util.py index a9dd443d0a..5ff5cc1ccf 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iam/iam_util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/iam/iam_util.py @@ -39,107 +39,8 @@ from googlecloudsdk.core.util import files import six -# Kluge for fixing inconsistency in python message -# generation from proto. See b/124063772. -kms_message = core_apis.GetMessagesModule('cloudkms', 'v1') -encoding.AddCustomJsonFieldMapping( - kms_message.CloudkmsProjectsLocationsEkmConfigGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -encoding.AddCustomJsonFieldMapping( - kms_message.CloudkmsProjectsLocationsEkmConnectionsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -encoding.AddCustomJsonFieldMapping( - kms_message.CloudkmsProjectsLocationsKeyRingsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') - -encoding.AddCustomJsonFieldMapping( - kms_message.CloudkmsProjectsLocationsKeyRingsCryptoKeysGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') - -encoding.AddCustomJsonFieldMapping( - kms_message.CloudkmsProjectsLocationsKeyRingsImportJobsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -secrets_message = core_apis.GetMessagesModule('secretmanager', 'v1') -encoding.AddCustomJsonFieldMapping( - secrets_message.SecretmanagerProjectsSecretsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -encoding.AddCustomJsonFieldMapping( - secrets_message.SecretmanagerProjectsLocationsSecretsGetIamPolicyRequest, - 'options_requestedPolicyVersion', - 'options.requestedPolicyVersion', -) - -secrets_message_beta = core_apis.GetMessagesModule('secretmanager', 'v1beta2') -encoding.AddCustomJsonFieldMapping( - secrets_message_beta.SecretmanagerProjectsSecretsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -encoding.AddCustomJsonFieldMapping( - secrets_message_beta.SecretmanagerProjectsLocationsSecretsGetIamPolicyRequest, - 'options_requestedPolicyVersion', - 'options.requestedPolicyVersion', -) msgs = core_apis.GetMessagesModule('iam', 'v1') -encoding.AddCustomJsonFieldMapping( - msgs.IamProjectsServiceAccountsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') - -privateca_message = core_apis.GetMessagesModule('privateca', 'v1') -encoding.AddCustomJsonFieldMapping( - privateca_message.PrivatecaProjectsLocationsCaPoolsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -encoding.AddCustomJsonFieldMapping( - privateca_message - .PrivatecaProjectsLocationsCertificateTemplatesGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') - -clouddeploy_message = core_apis.GetMessagesModule('clouddeploy', 'v1') -encoding.AddCustomJsonFieldMapping( - clouddeploy_message - .ClouddeployProjectsLocationsDeliveryPipelinesGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -encoding.AddCustomJsonFieldMapping( - clouddeploy_message.ClouddeployProjectsLocationsTargetsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -encoding.AddCustomJsonFieldMapping( - clouddeploy_message - .ClouddeployProjectsLocationsCustomTargetTypesGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') - -binaryauthorization_message_v1alpha2 = core_apis.GetMessagesModule( - 'binaryauthorization', 'v1alpha2') -encoding.AddCustomJsonFieldMapping( - binaryauthorization_message_v1alpha2 - .BinaryauthorizationProjectsAttestorsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -encoding.AddCustomJsonFieldMapping( - binaryauthorization_message_v1alpha2 - .BinaryauthorizationProjectsPolicyGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') - -binaryauthorization_message_v1beta1 = core_apis.GetMessagesModule( - 'binaryauthorization', 'v1beta1') -encoding.AddCustomJsonFieldMapping( - binaryauthorization_message_v1beta1 - .BinaryauthorizationProjectsAttestorsGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') -encoding.AddCustomJsonFieldMapping( - binaryauthorization_message_v1beta1 - .BinaryauthorizationProjectsPolicyGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') - -binaryauthorization_message_v1 = core_apis.GetMessagesModule( - 'binaryauthorization', 'v1') -encoding.AddCustomJsonFieldMapping( - binaryauthorization_message_v1 - .BinaryauthorizationProjectsPolicyGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') - -run_message_v1 = core_apis.GetMessagesModule('run', 'v1') -encoding.AddCustomJsonFieldMapping( - run_message_v1.RunProjectsLocationsServicesGetIamPolicyRequest, - 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') - MANAGED_BY = ( msgs.IamProjectsServiceAccountsKeysListRequest.KeyTypesValueValuesEnum) CREATE_KEY_TYPES = ( diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/flags.py deleted file mode 100644 index f88d19e780..0000000000 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/flags.py +++ /dev/null @@ -1,435 +0,0 @@ -# -*- coding: utf-8 -*- # -# Copyright 2017 Google LLC. All Rights Reserved. -# -# 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. - -"""Shared flags for Cloud IoT commands.""" - -from __future__ import absolute_import -from __future__ import division -from __future__ import unicode_literals - -import enum - -from googlecloudsdk.api_lib.util import apis -from googlecloudsdk.calliope import arg_parsers -from googlecloudsdk.calliope import base -from googlecloudsdk.command_lib.util.apis import arg_utils - -from six.moves import map # pylint: disable=redefined-builtin - - -def GetIdFlag(noun, action, metavar=None): - return base.Argument( - 'id', - metavar=metavar or '{}_ID'.format(noun.replace(' ', '_').upper()), - help='ID of the {} {}.\n\n'.format(noun, action)) - - -def GetIndexFlag(noun, action): - return base.Argument( - 'index', - type=int, - help='The index (zero-based) of the {} {}.'.format(noun, action)) - - -def AddDeviceRegistrySettingsFlagsToParser(parser, defaults=True): - """Get flags for device registry commands. - - Args: - parser: argparse parser to which to add these flags. - defaults: bool, whether to populate default values (for instance, should be - false for Patch commands). - - Returns: - list of base.Argument, the flags common to and specific to device commands. - """ - base.Argument( - '--enable-mqtt-config', - help='Whether to allow MQTT connections to this device registry.', - default=True if defaults else None, - action='store_true' - ).AddToParser(parser) - base.Argument( - '--enable-http-config', - help='Whether to allow device connections to the HTTP bridge.', - default=True if defaults else None, - action='store_true' - ).AddToParser(parser) - - base.Argument( - '--state-pubsub-topic', - required=False, - help=('A Google Cloud Pub/Sub topic name for state notifications.') - ).AddToParser(parser) - - for f in _GetEventNotificationConfigFlags(): - f.AddToParser(parser) - - -def _GetEventNotificationConfigFlags(): - """Returns a list of flags for specfiying Event Notification Configs.""" - event_notification_spec = { - 'topic': str, - 'subfolder': str - } - event_config = base.Argument( - '--event-notification-config', - dest='event_notification_configs', - action='append', - required=False, - type=arg_parsers.ArgDict(spec=event_notification_spec, - required_keys=['topic']), - help="""\ -The configuration for notification of telemetry events received -from the device. This flag can be specified multiple times to add multiple -configs to the device registry. Configs are added to the registry in the order -the flags are specified. Only one config with an empty subfolder field is -allowed and must be specified last. - -*topic*:::: A Google Cloud Pub/Sub topic name for event notifications - -*subfolder*:::: If the subfolder name matches this string exactly, this -configuration will be used to publish telemetry events. If empty all strings -are matched.""") - return [event_config] - - -def AddDeviceRegistryCredentialFlagsToParser(parser, credentials_surface=True): - """Add device credential flags to arg parser.""" - help_text = ('Path to a file containing an X.509v3 certificate ' - '([RFC5280](https://www.ietf.org/rfc/rfc5280.txt)), encoded in ' - 'base64, and wrapped by `-----BEGIN CERTIFICATE-----` and ' - '`-----END CERTIFICATE-----`.') - if not credentials_surface: - base.Argument( - '--public-key-path', - type=str, - help=help_text - ).AddToParser(parser) - else: - base.Argument( - '--path', - type=str, - required=True, - help=help_text - ).AddToParser(parser) - - -def GetIamPolicyFileFlag(): - return base.Argument( - 'policy_file', - help='JSON or YAML file with the IAM policy') - - -def AddDeviceFlagsToParser(parser, default_for_blocked_flags=True): - """Add flags for device commands to parser. - - Args: - parser: argparse parser to which to add these flags. - default_for_blocked_flags: bool, whether to populate default values for - device blocked state flags. - """ - for f in _GetDeviceFlags(default_for_blocked_flags): - f.AddToParser(parser) - - -def _GetDeviceFlags(default_for_blocked_flags=True): - """Generates the flags for device commands.""" - flags = [] - blocked_state_help_text = ( - 'If blocked, connections from this device will fail.\n\n' - 'Can be used to temporarily prevent the device from ' - 'connecting if, for example, the sensor is generating bad ' - 'data and needs maintenance.\n\n') - - if not default_for_blocked_flags: - blocked_state_help_text += ( - '+\n\n' # '+' here preserves markdown indentation. - 'Use `--no-blocked` to enable connections and `--blocked` to disable.') - else: - blocked_state_help_text += ( - '+\n\n' - 'Connections to device is not blocked by default.') - - blocked_default = False if default_for_blocked_flags else None - flags.append(base.Argument( - '--blocked', - default=blocked_default, - action='store_true', - help=blocked_state_help_text)) - - metadata_key_validator = arg_parsers.RegexpValidator( - r'[a-zA-Z0-9-_]{1,127}', - 'Invalid metadata key. Keys should only contain the following characters ' - '[a-zA-Z0-9-_] and be fewer than 128 bytes in length.') - flags.append(base.Argument( - '--metadata', - metavar='KEY=VALUE', - type=arg_parsers.ArgDict(key_type=metadata_key_validator), - help="""\ -The metadata key/value pairs assigned to devices. This metadata is not -interpreted or indexed by Cloud IoT Core. It can be used to add contextual -information for the device. - -Keys should only contain the following characters ```[a-zA-Z0-9-_]``` and be -fewer than 128 bytes in length. Values are free-form strings. Each value must -be fewer than or equal to 32 KB in size. - -The total size of all keys and values must be less than 256 KB, and the -maximum number of key-value pairs is 500. -""")) - - flags.append(base.Argument( - '--metadata-from-file', - metavar='KEY=PATH', - type=arg_parsers.ArgDict(key_type=metadata_key_validator), - help=('Same as --metadata, but the metadata values will be read from the ' - 'file specified by path.') - )) - return flags - - -def AddLogLevelFlagToParser(parser): - choices = { - 'none': 'Disables logging.', - 'info': 'Informational events will be logged, such as connections and ' - 'disconnections. Also includes error events.', - 'error': 'Error events will be logged.', - 'debug': 'All events will be logged' - } - return base.ChoiceArgument( - '--log-level', - choices=choices, - help_str="""\ - The default logging verbosity for activity from devices in this - registry. The verbosity level can be overridden by setting a specific - device's log level. - """).AddToParser(parser) - - -class KeyTypes(enum.Enum): - """Valid key types for device credentials.""" - RS256 = 1 - ES256 = 2 - RSA_PEM = 3 - RSA_X509_PEM = 4 - ES256_PEM = 5 - ES256_X509_PEM = 6 - - def __init__(self, value): - self.choice_name = self.name.replace('_', '-').lower() - - -_VALID_KEY_TYPES = { - KeyTypes.RSA_PEM.choice_name: """\ - An RSA public key encoded in base64, and wrapped by - `-----BEGIN PUBLIC KEY-----` and `-----END PUBLIC KEY-----`. - This can be used to verify `RS256` signatures in JWT tokens - ([RFC7518](https://www.ietf.org/rfc/rfc7518.txt)).""", - KeyTypes.RSA_X509_PEM.choice_name: """\ - As RSA_PEM, but wrapped in an X.509v3 certificate - ([RFC5280](https://www.ietf.org/rfc/rfc5280.txt)), - encoded in base64, and wrapped by - `-----BEGIN CERTIFICATE-----` and - `-----END CERTIFICATE-----`.""", - KeyTypes.ES256_PEM.choice_name: """\ - Public key for the ECDSA algorithm using P-256 and - SHA-256, encoded in base64, and wrapped by - `-----BEGIN PUBLIC KEY-----` and - `-----END PUBLIC KEY-----`. This can be used to verify JWT - tokens with the `ES256` algorithm - ([RFC7518](https://www.ietf.org/rfc/rfc7518.txt)). This - curve is defined in [OpenSSL](https://www.openssl.org/) as - the `prime256v1` curve.""", - KeyTypes.ES256_X509_PEM.choice_name: """\ - As ES256_PEM, but wrapped in an X.509v3 certificate - ([RFC5280](https://www.ietf.org/rfc/rfc5280.txt)), - encoded in base64, and wrapped by - `-----BEGIN CERTIFICATE-----` and - `-----END CERTIFICATE-----`.""", - KeyTypes.RS256.choice_name: 'Deprecated name for `rsa-x509-pem`', - KeyTypes.ES256.choice_name: 'Deprecated nmame for `es256-pem`' -} - - -def AddDeviceCredentialFlagsToParser(parser, combine_flags=True, - only_modifiable=False): - """Get credentials-related flags. - - Adds one of the following: - - * --public-key path=PATH,type=TYPE,expiration-time=EXPIRATION_TIME - * --path=PATH --type=TYPE --expiration-time=EXPIRATION_TIME - - depending on the value of combine_flags. - - Args: - parser: argparse parser to which to add these flags. - combine_flags: bool, whether to combine these flags into one --public-key - flag or to leave them separate. - only_modifiable: bool, whether to include all flags or just those that can - be modified after creation. - """ - for f in _GetDeviceCredentialFlags(combine_flags, only_modifiable): - f.AddToParser(parser) - - -def _GetDeviceCredentialFlags(combine_flags=True, only_modifiable=False): - """"Generates credentials-related flags.""" - flags = [] - if not only_modifiable: - flags.extend([ - base.Argument('--path', required=True, type=str, - help='The path on disk to the file containing the key.'), - base.ChoiceArgument('--type', choices=_VALID_KEY_TYPES, required=True, - help_str='The type of the key.') - ]) - flags.append( - base.Argument('--expiration-time', type=arg_parsers.Datetime.Parse, - help=('The expiration time for the key. See ' - '$ gcloud topic datetimes for information on ' - 'time formats.'))) - if not combine_flags: - return flags - - sub_argument_help = [] - spec = {} - for flag in flags: - name = flag.name.lstrip('-') - required = flag.kwargs.get('required') - choices = flag.kwargs.get('choices') - choices_str = '' - if choices: - choices_str = ', '.join(map('`{}`'.format, sorted(choices))) - choices_str = ' One of [{}].'.format(choices_str) - help_ = flag.kwargs['help'] - spec[name] = flag.kwargs['type'] - sub_argument_help.append( - '* *{name}*: {required}.{choices} {help}'.format( - name=name, required=('Required' if required else 'Optional'), - choices=choices_str, help=help_)) - key_type_help = [] - for key_type, description in reversed(sorted(_VALID_KEY_TYPES.items())): - key_type_help.append('* `{}`: {}'.format(key_type, description)) - flag = base.Argument( - '--public-key', - dest='public_keys', - metavar='path=PATH,type=TYPE,[expiration-time=EXPIRATION-TIME]', - type=arg_parsers.ArgDict(spec=spec), - action='append', - help="""\ -Specify a public key. - -Supports four key types: - -{key_type_help} - -The key specification is given via the following sub-arguments: - -{sub_argument_help} - -For example: - - --public-key \\ - path=/path/to/id_rsa.pem,type=RSA_PEM,expiration-time=2017-01-01T00:00-05 - -This flag may be provide multiple times to provide multiple keys (maximum 3). -""".format(key_type_help='\n'.join(key_type_help), - sub_argument_help='\n'.join(sub_argument_help))) - return [flag] - - -def _GetCreateFlags(): - """Generates all the flags for the create command.""" - return _GetDeviceFlags() + _GetDeviceCredentialFlags() - - -def _GetCreateFlagsForGateways(): - """Generates all the flags for the create command.""" - return (_GetDeviceFlags() + _GetDeviceCredentialFlags() + - [CREATE_GATEWAY_ENUM_MAPPER.choice_arg, - GATEWAY_AUTH_METHOD_ENUM_MAPPER.choice_arg]) - - -def AddDeviceConfigFlagsToParser(parser): - """Add flags for the `configs update` command.""" - base.Argument( - '--version-to-update', - type=int, - help="""\ - The version number to update. If this value is `0` or unspecified, it - will not check the version number of the server and will always update - the current version; otherwise, this update will fail if the version - number provided does not match the latest version on the server. This - is used to detect conflicts with simultaneous updates. - """).AddToParser(parser) - data_group = parser.add_mutually_exclusive_group(required=True) - base.Argument( - '--config-file', - help='Path to a local file containing the data for this configuration.' - ).AddToParser(data_group) - base.Argument( - '--config-data', - help=('The data for this configuration, as a string. For any values ' - 'that contain special characters (in the context of your shell), ' - 'use the `--config-file` flag instead.') - ).AddToParser(data_group) - - -def _GetGatewayEnum(parent='list_request'): - """Get GatewayTypeValueEnum from the specified parent message.""" - messages = apis.GetMessagesModule('cloudiot', 'v1') - if parent == 'list_request': - request = (messages.CloudiotProjectsLocationsRegistriesDevicesListRequest) - else: - request = (messages.GatewayConfig) - return request.GatewayTypeValueValuesEnum - - -def _GetAuthMethodEnum(): - """Get GatewayAuthMethodValueValuesEnum from api messages.""" - messages = apis.GetMessagesModule('cloudiot', 'v1') - return messages.GatewayConfig.GatewayAuthMethodValueValuesEnum - -GATEWAY_AUTH_METHOD_ENUM_MAPPER = arg_utils.ChoiceEnumMapper( - '--auth-method', - _GetAuthMethodEnum(), - custom_mappings={ - 'ASSOCIATION_ONLY': ('association-only', - ('The device is authenticated through the ' - 'gateway association only. Device credentials ' - 'are ignored if provided.')), - 'DEVICE_AUTH_TOKEN_ONLY': ('device-auth-token-only', - ('The device is authenticated through its ' - 'own credentials. Gateway association ' - 'is not checked.')), - 'ASSOCIATION_AND_DEVICE_AUTH_TOKEN': ( - 'association-and-device-auth-token', - ('The device is authenticated through both device ' - 'credentials and gateway association.')) - }, - required=False, - help_str=('The authorization/authentication method used by devices in ' - 'relation to the gateway. This property is set only on gateways. ' - 'If left unspecified, devices will not be able to access ' - 'the gateway.')) - - -CREATE_GATEWAY_ENUM_MAPPER = arg_utils.ChoiceEnumMapper( - '--device-type', - _GetGatewayEnum(parent='create_request'), - required=False, - include_filter=lambda x: x != 'GATEWAY_TYPE_UNSPECIFIED', - help_str=('Whether this device is a gateway. If unspecified, ' - 'non-gateway is assumed. ')) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/resource_args.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/resource_args.py deleted file mode 100644 index 2c309eaaf6..0000000000 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/resource_args.py +++ /dev/null @@ -1,201 +0,0 @@ -# -*- coding: utf-8 -*- # -# Copyright 2017 Google LLC. All Rights Reserved. -# -# 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. - -"""Shared resource flags for Cloud IoT commands.""" - -from __future__ import absolute_import -from __future__ import division -from __future__ import unicode_literals - -from googlecloudsdk.calliope.concepts import concepts -from googlecloudsdk.command_lib.util.concepts import concept_parsers -from googlecloudsdk.command_lib.util.concepts import presentation_specs - - -def DeviceAttributeConfig(name='device'): - return concepts.ResourceParameterAttributeConfig( - name=name, - help_text='The device of the {resource}.', - completion_request_params={'fieldMask': 'name'}, - completion_id_field='id') - - -def RegistryAttributeConfig(): - return concepts.ResourceParameterAttributeConfig( - name='registry', - help_text='The device registry for the {resource}.') - - -def RegionAttributeConfig(): - return concepts.ResourceParameterAttributeConfig( - name='region', - help_text='The Cloud region for the {resource}.') - - -def GetDeviceResourceSpec(resource_name='device'): - return concepts.ResourceSpec( - 'cloudiot.projects.locations.registries.devices', - resource_name=resource_name, - devicesId=DeviceAttributeConfig(name=resource_name), - registriesId=RegistryAttributeConfig(), - locationsId=RegionAttributeConfig(), - projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG, - disable_auto_completers=False) - - -def GetRegistryResourceSpec(): - return concepts.ResourceSpec( - 'cloudiot.projects.locations.registries', - resource_name='registry', - registriesId=RegistryAttributeConfig(), - locationsId=RegionAttributeConfig(), - projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG, - disable_auto_completers=False) - - -def GetRegionResourceSpec(): - return concepts.ResourceSpec( - 'cloudiot.projects.locations', - resource_name='region', - locationsId=RegionAttributeConfig(), - projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG) - - -def AddDeviceResourceArg(parser, verb, positional=True): - """Add a resource argument for a cloud IOT device. - - NOTE: Must be used only if it's the only resource arg in the command. - - Args: - parser: the parser for the command. - verb: str, the verb to describe the resource, such as 'to update'. - positional: bool, if True, means that the device ID is a positional rather - than a flag. - """ - if positional: - name = 'device' - else: - name = '--device' - concept_parsers.ConceptParser.ForResource( - name, - GetDeviceResourceSpec(), - 'The device {}.'.format(verb), - required=True).AddToParser(parser) - - -def AddRegistryResourceArg(parser, verb, positional=True): - """Add a resource argument for a cloud IOT device registry. - - NOTE: Must be used only if it's the only resource arg in the command. - - Args: - parser: the parser for the command. - verb: str, the verb to describe the resource, such as 'to update'. - positional: bool, if True, means that the device ID is a positional rather - than a flag. - """ - if positional: - name = 'registry' - else: - name = '--registry' - concept_parsers.ConceptParser.ForResource( - name, - GetRegistryResourceSpec(), - 'The device registry {}.'.format(verb), - required=True).AddToParser(parser) - - -def AddRegionResourceArg(parser, verb): - """Add a resource argument for a cloud IOT region. - - NOTE: Must be used only if it's the only resource arg in the command. - - Args: - parser: the parser for the command. - verb: str, the verb to describe the resource, such as 'to update'. - """ - concept_parsers.ConceptParser.ForResource( - '--region', - GetRegionResourceSpec(), - 'The Cloud region {}.'.format(verb), - required=True).AddToParser(parser) - - -def CreateDevicePresentationSpec(verb, help_text='The device {}.', - name='device', required=False, - prefixes=True, positional=False): - """Build ResourcePresentationSpec for generic device Resource. - - NOTE: Should be used when there are multiple resources args in the command. - - Args: - verb: string, the verb to describe the resource, such as 'to bind'. - help_text: string, the help text for the entire resource arg group. Should - have a format specifier (`{}`) to insert verb. - name: string, name of resource anchor argument. - required: bool, whether or not this resource arg is required. - prefixes: bool, if True the resource name will be used as a prefix for - the flags in the resource group. - positional: bool, if True, means that the device ID is a positional rather - than a flag. - Returns: - ResourcePresentationSpec, presentation spec for device. - """ - arg_name = name if positional else '--' + name - arg_help = help_text.format(verb) - - return presentation_specs.ResourcePresentationSpec( - arg_name, - GetDeviceResourceSpec(name), - arg_help, - required=required, - prefixes=prefixes - ) - - -def _GetBindResourceConcepts(verb='to bind to'): - """Build ConceptParser for (un)bind commands resource args.""" - arg_specs = [ - CreateDevicePresentationSpec( # gateway spec - verb, - help_text='The gateway device {}.', - name='gateway', - required=True), - CreateDevicePresentationSpec( # device spec - verb, - help_text='The device {} the gateway.', - required=True), - ] - - fallthroughs = { - '--device.registry': ['--gateway.registry'], - '--gateway.registry': ['--device.registry'] - } - - return concept_parsers.ConceptParser(arg_specs, fallthroughs) - - -def AddBindResourceArgsToParser(parser): - """Add resource args for gateways (un)bind commands to parser.""" - _GetBindResourceConcepts().AddToParser(parser) - - -def BindAdditionalArgsHook(): - return [_GetBindResourceConcepts()] - - -def UnBindAdditionalArgsHook(): - return [_GetBindResourceConcepts('to unbind from')] - diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/resources.yaml b/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/resources.yaml deleted file mode 100644 index 8a9cca260e..0000000000 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/resources.yaml +++ /dev/null @@ -1,55 +0,0 @@ -region: - name: region - collection: cloudiot.projects.locations - attributes: - - ®ion - parameter_name: locationsId - attribute_name: region - help: The name of the Cloud IoT region. - disable_auto_completers: false - -registry: - name: registry - collection: cloudiot.projects.locations.registries - request_id_field: deviceRegistry.id - attributes: - - *region - - ®istry - parameter_name: registriesId - attribute_name: registry - help: The name of the Cloud IoT registry. - disable_auto_completers: false - -device: - name: device - collection: cloudiot.projects.locations.registries.devices - request_id_field: device.id - attributes: - - *region - - *registry - - &device - parameter_name: devicesId - attribute_name: device - help: The name of the Cloud IoT device., - completion_request_params: - - fieldName: fieldMask - value: name - completion_id_field: id - disable_auto_completers: false - -gateway: - name: gateway - collection: cloudiot.projects.locations.registries.devices - request_id_field: gateway.id - attributes: - - *region - - *registry - - &gateway - parameter_name: devicesId - attribute_name: gateway - help: The name of the Cloud IoT gateway device., - completion_request_params: - - fieldName: fieldMask - value: name - completion_id_field: id - disable_auto_completers: false diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/util.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/util.py deleted file mode 100644 index ff4ea6359d..0000000000 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/iot/util.py +++ /dev/null @@ -1,533 +0,0 @@ -# -*- coding: utf-8 -*- # -# Copyright 2017 Google LLC. All Rights Reserved. -# -# 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. - -"""General utilties for Cloud IoT commands.""" - -from __future__ import absolute_import -from __future__ import division -from __future__ import unicode_literals - -from apitools.base.py import encoding -from googlecloudsdk.api_lib.cloudiot import devices -from googlecloudsdk.api_lib.cloudiot import registries -from googlecloudsdk.command_lib.iot import flags -from googlecloudsdk.command_lib.util.apis import arg_utils -from googlecloudsdk.core import exceptions -from googlecloudsdk.core import properties -from googlecloudsdk.core import resources -from googlecloudsdk.core.util import files -from googlecloudsdk.core.util import http_encoding -from googlecloudsdk.core.util import times - -import six - - -LOCATIONS_COLLECTION = 'cloudiot.projects.locations' -REGISTRIES_COLLECTION = 'cloudiot.projects.locations.registries' -DEVICES_COLLECTION = 'cloudiot.projects.locations.registries.devices' -DEVICE_CONFIGS_COLLECTION = 'cloudiot.projects.locations.registries.devices.configVersions' -_PROJECT = lambda: properties.VALUES.core.project.Get(required=True) - -# Maximum number of public key credentials for a device. -MAX_PUBLIC_KEY_NUM = 3 - - -# Maximum number of metadata pairs for a device. -MAX_METADATA_PAIRS = 500 - - -# Maximum size of a metadata values (32 KB). -MAX_METADATA_VALUE_SIZE = 1024 * 32 - - -# Maximum size of metadata keys and values (256 KB). -MAX_METADATA_SIZE = 1024 * 256 - -# Mapping of apitools request message fields to their json parameters -# pylint: disable=line-too-long, for readability. -_CUSTOM_JSON_FIELD_MAPPINGS = { - 'gatewayListOptions_gatewayType': 'gatewayListOptions.gatewayType', - 'gatewayListOptions_associationsGatewayId': 'gatewayListOptions.associationsGatewayId', - 'gatewayListOptions_associationsDeviceId': 'gatewayListOptions.associationsDeviceId', -} -# pylint: enable=line-too-long - - -class InvalidPublicKeySpecificationError(exceptions.Error): - """Indicates an issue with supplied public key credential(s).""" - - -class InvalidKeyFileError(exceptions.Error): - """Indicates that a provided key file is malformed.""" - - -class BadCredentialIndexError(exceptions.Error): - """Indicates that a user supplied a bad index for resource's credentials.""" - - def __init__(self, name, credentials, index, resource='device'): - super(BadCredentialIndexError, self).__init__( - 'Invalid credential index [{index}]; {resource} [{name}] has ' - '{num_credentials} credentials. (Indexes are zero-based.))'.format( - index=index, name=name, num_credentials=len(credentials), - resource=resource)) - - -class InvalidAuthMethodError(exceptions.Error): - """Indicates that auth method was provided for non-gateway device.""" - - -class BadDeviceError(exceptions.Error): - """Indicates that a given device is malformed.""" - - -class InvalidMetadataError(exceptions.Error): - """Indicates an error with the supplied device metadata.""" - - -def RegistriesUriFunc(resource): - return ParseRegistry(resource.name).SelfLink() - - -def DevicesUriFunc(resource): - return ParseDevice(resource.name).SelfLink() - - -def ParseEnableMqttConfig(enable_mqtt_config, client=None): - if enable_mqtt_config is None: - return None - client = client or registries.RegistriesClient() - mqtt_config_enum = client.mqtt_config_enum - if enable_mqtt_config: - return mqtt_config_enum.MQTT_ENABLED - else: - return mqtt_config_enum.MQTT_DISABLED - - -def ParseEnableHttpConfig(enable_http_config, client=None): - if enable_http_config is None: - return None - client = client or registries.RegistriesClient() - http_config_enum = client.http_config_enum - if enable_http_config: - return http_config_enum.HTTP_ENABLED - else: - return http_config_enum.HTTP_DISABLED - - -def ParseLogLevel(log_level, enum_class): - if log_level is None: - return None - return arg_utils.ChoiceToEnum(log_level, enum_class) - - -def AddBlockedToRequest(ref, args, req): - """Python hook for yaml commands to process the blocked flag.""" - del ref - req.device.blocked = args.blocked - return req - - -_ALLOWED_KEYS = ['type', 'path', 'expiration-time'] -_REQUIRED_KEYS = ['type', 'path'] - - -def _ValidatePublicKeyDict(public_key): - unrecognized_keys = (set(public_key.keys()) - set(_ALLOWED_KEYS)) - if unrecognized_keys: - raise TypeError( - 'Unrecognized keys [{}] for public key specification.'.format( - ', '.join(unrecognized_keys))) - - for key in _REQUIRED_KEYS: - if key not in public_key: - raise InvalidPublicKeySpecificationError( - '--public-key argument missing value for `{}`.'.format(key)) - - -def _ConvertStringToFormatEnum(type_, messages): - """Convert string values to Enum object type.""" - if (type_ == flags.KeyTypes.RS256.choice_name or - type_ == flags.KeyTypes.RSA_X509_PEM.choice_name): - return messages.PublicKeyCredential.FormatValueValuesEnum.RSA_X509_PEM - elif type_ == flags.KeyTypes.RSA_PEM.choice_name: - return messages.PublicKeyCredential.FormatValueValuesEnum.RSA_PEM - elif type_ == flags.KeyTypes.ES256_X509_PEM.choice_name: - return messages.PublicKeyCredential.FormatValueValuesEnum.ES256_X509_PEM - elif (type_ == flags.KeyTypes.ES256.choice_name or - type_ == flags.KeyTypes.ES256_PEM.choice_name): - return messages.PublicKeyCredential.FormatValueValuesEnum.ES256_PEM - else: - # Should have been caught by argument parsing - raise ValueError('Invalid key type [{}]'.format(type_)) - - -def _ReadKeyFileFromPath(path): - if not path: - raise ValueError('path is required') - try: - return files.ReadFileContents(path) - except files.Error as err: - raise InvalidKeyFileError('Could not read key file [{}]:\n\n{}'.format( - path, err)) - - -def ParseCredential(path, type_str, expiration_time=None, messages=None): - messages = messages or devices.GetMessagesModule() - - type_ = _ConvertStringToFormatEnum(type_str, messages) - contents = _ReadKeyFileFromPath(path) - if expiration_time: - expiration_time = times.FormatDateTime(expiration_time) - - return messages.DeviceCredential( - expirationTime=expiration_time, - publicKey=messages.PublicKeyCredential( - format=type_, - key=contents - ) - ) - - -def ParseCredentials(public_keys, messages=None): - """Parse a DeviceCredential from user-supplied arguments. - - Returns a list of DeviceCredential with the appropriate type, expiration time - (if provided), and contents of the file for each public key. - - Args: - public_keys: list of dict (maximum 3) representing public key credentials. - The dict should have the following keys: - - 'type': Required. The key type. One of [es256, rs256] - - 'path': Required. Path to a valid key file on disk. - - 'expiration-time': Optional. datetime, the expiration time for the - credential. - messages: module or None, the apitools messages module for Cloud IoT (uses a - default module if not provided). - - Returns: - List of DeviceCredential (possibly empty). - - Raises: - TypeError: if an invalid public_key specification is given in public_keys - ValueError: if an invalid public key type is given (that is, neither es256 - nor rs256) - InvalidPublicKeySpecificationError: if a public_key specification is missing - a required part, or too many public keys are provided. - InvalidKeyFileError: if a valid combination of flags is given, but the - specified key file is not valid or not readable. - """ - messages = messages or devices.GetMessagesModule() - - if not public_keys: - return [] - - if len(public_keys) > MAX_PUBLIC_KEY_NUM: - raise InvalidPublicKeySpecificationError( - ('Too many public keys specified: ' - '[{}] given, but maximum [{}] allowed.').format( - len(public_keys), MAX_PUBLIC_KEY_NUM)) - - credentials = [] - for key in public_keys: - _ValidatePublicKeyDict(key) - credentials.append( - ParseCredential(key.get('path'), key.get('type'), - key.get('expiration-time'), messages=messages)) - return credentials - - -def AddCredentialsToRequest(ref, args, req): - """Python hook for yaml commands to process the credential flag.""" - del ref - req.device.credentials = ParseCredentials(args.public_keys) - return req - - -def ParseRegistryCredential(path, messages=None): - messages = messages or devices.GetMessagesModule() - - contents = _ReadKeyFileFromPath(path) - format_enum = messages.PublicKeyCertificate.FormatValueValuesEnum - return messages.RegistryCredential( - publicKeyCertificate=messages.PublicKeyCertificate( - certificate=contents, - format=format_enum.X509_CERTIFICATE_PEM)) - - -def GetRegistry(): - registry = resources.REGISTRY.Clone() - registry.RegisterApiByName('cloudiot', 'v1') - return registry - - -def ParseLocation(region): - return GetRegistry().Parse( - region, - params={'projectsId': _PROJECT}, collection=LOCATIONS_COLLECTION) - - -def ParseRegistry(registry, region=None): - return GetRegistry().Parse( - registry, - params={'projectsId': _PROJECT, 'locationsId': region}, - collection=REGISTRIES_COLLECTION) - - -def ParseDevice(device, registry=None, region=None): - return GetRegistry().Parse( - device, - params={ - 'projectsId': _PROJECT, - 'locationsId': region, - 'registriesId': registry - }, - collection=DEVICES_COLLECTION) - - -def GetDeviceConfigRef(device_ref): - return GetRegistry().Parse( - device_ref.devicesId, - params={ - 'projectsId': device_ref.projectsId, - 'locationsId': device_ref.locationsId, - 'registriesId': device_ref.registriesId - }, - collection=DEVICE_CONFIGS_COLLECTION) - - -def ParsePubsubTopic(topic): - if topic is None: - return None - return GetRegistry().Parse( - topic, - params={'projectsId': _PROJECT}, collection='pubsub.projects.topics') - - -def ReadConfigData(args): - """Read configuration data from the parsed arguments. - - See command_lib.iot.flags for the flag definitions. - - Args: - args: a parsed argparse Namespace object containing config_data and - config_file. - - Returns: - str, the binary configuration data - - Raises: - ValueError: unless exactly one of --config-data, --config-file given - """ - if args.IsSpecified('config_data') and args.IsSpecified('config_file'): - raise ValueError('Both --config-data and --config-file given.') - if args.IsSpecified('config_data'): - return http_encoding.Encode(args.config_data) - elif args.IsSpecified('config_file'): - return files.ReadBinaryFileContents(args.config_file) - else: - raise ValueError('Neither --config-data nor --config-file given.') - - -def _CheckMetadataValueSize(value): - if not value: - raise InvalidMetadataError('Metadata value cannot be empty.') - if len(value) > MAX_METADATA_VALUE_SIZE: - raise InvalidMetadataError('Maximum size of metadata values are 32KB.') - - -def _ValidateAndCreateAdditionalProperty(messages, key, value): - _CheckMetadataValueSize(value) - return messages.Device.MetadataValue.AdditionalProperty(key=key, value=value) - - -def _ReadMetadataValueFromFile(path): - if not path: - raise ValueError('path is required') - try: - return files.ReadFileContents(path) - except files.Error as err: - raise InvalidMetadataError('Could not read value file [{}]:\n\n{}'.format( - path, err)) - - -def ParseMetadata(metadata, metadata_from_file, messages=None): - """Parse and create metadata object from the parsed arguments. - - Args: - metadata: dict, key-value pairs passed in from the --metadata flag. - metadata_from_file: dict, key-path pairs passed in from the - --metadata-from-file flag. - messages: module or None, the apitools messages module for Cloud IoT (uses a - default module if not provided). - - Returns: - MetadataValue or None, the populated metadata message for a Device. - - Raises: - InvalidMetadataError: if there was any issue parsing the metadata. - """ - if not metadata and not metadata_from_file: - return None - metadata = metadata or dict() - metadata_from_file = metadata_from_file or dict() - if len(metadata) + len(metadata_from_file) > MAX_METADATA_PAIRS: - raise InvalidMetadataError('Maximum number of metadata key-value pairs ' - 'is {}.'.format(MAX_METADATA_PAIRS)) - if set(metadata.keys()) & set(metadata_from_file.keys()): - raise InvalidMetadataError('Cannot specify the same key in both ' - '--metadata and --metadata-from-file.') - total_size = 0 - messages = messages or devices.GetMessagesModule() - additional_properties = [] - for key, value in six.iteritems(metadata): - total_size += len(key) + len(value) - additional_properties.append( - _ValidateAndCreateAdditionalProperty(messages, key, value)) - for key, path in metadata_from_file.items(): - value = _ReadMetadataValueFromFile(path) - total_size += len(key) + len(value) - additional_properties.append( - _ValidateAndCreateAdditionalProperty(messages, key, value)) - if total_size > MAX_METADATA_SIZE: - raise InvalidMetadataError('Maximum size of metadata key-value pairs ' - 'is 256KB.') - - return messages.Device.MetadataValue( - additionalProperties=additional_properties) - - -def AddMetadataToRequest(ref, args, req): - """Python hook for yaml commands to process the metadata flags.""" - del ref - metadata = ParseMetadata(args.metadata, args.metadata_from_file) - req.device.metadata = metadata - return req - - -def ParseEventNotificationConfig(event_notification_configs, messages=None): - """Creates a list of EventNotificationConfigs from args.""" - messages = messages or registries.GetMessagesModule() - if event_notification_configs: - configs = [] - for config in event_notification_configs: - topic_ref = ParsePubsubTopic(config['topic']) - configs.append(messages.EventNotificationConfig( - pubsubTopicName=topic_ref.RelativeName(), - subfolderMatches=config.get('subfolder', None))) - return configs - return None - - -def AddEventNotificationConfigsToRequest(ref, args, req): - """Python hook for yaml commands to process event config flags.""" - del ref - configs = ParseEventNotificationConfig(args.event_notification_configs) - req.deviceRegistry.eventNotificationConfigs = configs or [] - return req - - -def AddCreateGatewayArgsToRequest(ref, args, req): - """Python hook for yaml create command to process gateway flags.""" - del ref - gateway = args.device_type - auth_method = args.auth_method - - # Don't set gateway config if no flags provided - if not (gateway or auth_method): - return req - - messages = devices.GetMessagesModule() - req.device.gatewayConfig = messages.GatewayConfig() - if auth_method: - if not gateway or gateway == 'non-gateway': - raise InvalidAuthMethodError( - 'auth_method can only be set on gateway devices.') - auth_enum = flags.GATEWAY_AUTH_METHOD_ENUM_MAPPER.GetEnumForChoice( - auth_method) - req.device.gatewayConfig.gatewayAuthMethod = auth_enum - - if gateway: - gateway_enum = flags.CREATE_GATEWAY_ENUM_MAPPER.GetEnumForChoice(gateway) - req.device.gatewayConfig.gatewayType = gateway_enum - - return req - - -def AddBindArgsToRequest(ref, args, req): - """Python hook for yaml gateways bind command to process resource_args.""" - del ref - messages = devices.GetMessagesModule() - gateway_ref = args.CONCEPTS.gateway.Parse() - device_ref = args.CONCEPTS.device.Parse() - registry_ref = gateway_ref.Parent() - - bind_request = messages.BindDeviceToGatewayRequest( - deviceId=device_ref.Name(), gatewayId=gateway_ref.Name()) - req.bindDeviceToGatewayRequest = bind_request - req.parent = registry_ref.RelativeName() - - return req - - -def AddUnBindArgsToRequest(ref, args, req): - """Python hook for yaml gateways unbind command to process resource_args.""" - del ref - messages = devices.GetMessagesModule() - gateway_ref = args.CONCEPTS.gateway.Parse() - device_ref = args.CONCEPTS.device.Parse() - registry_ref = gateway_ref.Parent() - - unbind_request = messages.UnbindDeviceFromGatewayRequest( - deviceId=device_ref.Name(), gatewayId=gateway_ref.Name()) - req.unbindDeviceFromGatewayRequest = unbind_request - req.parent = registry_ref.RelativeName() - - return req - - -# message fields. -def RegistriesDevicesListRequestHook(ref, args, req): - """Add Api field query string mappings to list requests.""" - del ref - del args - msg = devices.GetMessagesModule() - updated_requests_type = ( - msg.CloudiotProjectsLocationsRegistriesDevicesListRequest) - for req_field, mapped_param in _CUSTOM_JSON_FIELD_MAPPINGS.items(): - encoding.AddCustomJsonFieldMapping(updated_requests_type, - req_field, - mapped_param) - return req - - -# Argument Processors -def GetCommandFromFileProcessor(path): - """Builds a binary data for a SendCommandToDeviceRequest message from a path. - - Args: - path: the path arg given to the command. - - Raises: - ValueError: if the path does not exist or can not be read. - - Returns: - binary data to be set on a message. - """ - try: - return files.ReadBinaryFileContents(path) - - except Exception as e: - raise ValueError('Command File [{}] can not be opened: {}'.format(path, e)) - diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/netapp/storage_pools/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/netapp/storage_pools/flags.py index 6f4f2216ee..504bd13a28 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/netapp/storage_pools/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/netapp/storage_pools/flags.py @@ -43,12 +43,11 @@ ## Helper functions to add args / flags for Storage Pools gcloud commands ## -def GetStoragePoolServiceLevelArg(messages, release_track, required=True): +def GetStoragePoolServiceLevelArg(messages, required=True): """Adds a --service-level arg to the given parser. Args: messages: The messages module. - release_track: the release track for the surface (GA, BETA, ALPHA) required: bool, whether choice arg is required or not Returns: @@ -76,18 +75,14 @@ def GetStoragePoolServiceLevelArg(messages, release_track, required=True): The Standard Service Level has a throughput per GiB of allocated volume size of 16 KiB/s.""", ), - } - if ( - release_track == base.ReleaseTrack.BETA - or release_track == base.ReleaseTrack.ALPHA - ): - custom_mappings['FLEX'] = ( - 'flex', - """ + 'FLEX': ( + 'flex', + """ Flex Service Level for Cloud NetApp Storage Pool. The Flex Service Level has a throughput per GiB of allocated volume size of 16 KiB/s.""", - ) + ), + } service_level_arg = arg_utils.ChoiceEnumMapper( '--service-level', messages.StoragePool.ServiceLevelValueValuesEnum, @@ -102,10 +97,10 @@ def GetStoragePoolServiceLevelArg(messages, release_track, required=True): def AddStoragePoolServiceLevelArg( - parser, messages, release_track, required=False + parser, messages, required=False ): GetStoragePoolServiceLevelArg( - messages, release_track=release_track, required=required + messages, required=required ).choice_arg.AddToParser(parser) @@ -202,7 +197,7 @@ def AddStoragePoolCreateArgs(parser, release_track): labels_util.AddCreateLabelsFlags(parser) messages = netapp_api_util.GetMessagesModule(release_track=release_track) AddStoragePoolServiceLevelArg( - parser, release_track=release_track, messages=messages, required=True + parser, messages=messages, required=True ) AddStoragePoolNetworkArg(parser) AddStoragePoolActiveDirectoryArg(parser) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/network_connectivity/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/network_connectivity/flags.py index f5cd9a4a82..eccdfbeab1 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/network_connectivity/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/network_connectivity/flags.py @@ -93,6 +93,15 @@ def AddGroupFlag(parser): ) +def AddNetworkFlag(parser): + """Adds the --network argument to the given parser.""" + parser.add_argument( + '--network', + required=True, + help="""VPC network that contains the PSA connection the spoke provides + connectivity to. The resource must already exist.""") + + def AddVPCNetworkFlag(parser): """Adds the --vpc-network argument to the given parser.""" # TODO(b/233653552) Parse this with a resource argument. diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/flags.py index d9af70f2cd..253f90b6e7 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/flags.py @@ -3132,9 +3132,6 @@ def GetAllowUnauthenticated(args, client=None, service_ref=None, prompt=False): if getattr(args, 'allow_unauthenticated', None) is not None: return args.allow_unauthenticated - if FlagIsExplicitlySet(args, 'default_url') and not args.default_url: - return None - if ( FlagIsExplicitlySet(args, 'invoker_iam_check') and not args.invoker_iam_check diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/messages_util.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/messages_util.py index 499cd209dd..2866a77f03 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/messages_util.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/messages_util.py @@ -20,15 +20,20 @@ from __future__ import unicode_literals -def GetSuccessMessageForSynchronousDeploy(service): +def GetSuccessMessageForSynchronousDeploy(service, no_traffic): """Returns a user message for a successful synchronous deploy. Args: service: googlecloudsdk.api_lib.run.service.Service, Deployed service for which to build a success message. + no_traffic: bool, whether the service was deployed with --no-traffic flag. """ latest_ready = service.status.latestReadyRevisionName - latest_percent_traffic = service.latest_percent_traffic + # Use lastCreatedRevisionName if --no-traffic is set. This was due to a bug + # where the latestReadyRevisionName was not updated in time when traffic + # update was not needed in reconciliation steps. + latest_created = service.status.latestCreatedRevisionName + latest_percent_traffic = 0 if no_traffic else service.latest_percent_traffic msg = ( 'Service [{{bold}}{serv}{{reset}}] ' 'revision [{{bold}}{rev}{{reset}}] ' @@ -46,7 +51,7 @@ def GetSuccessMessageForSynchronousDeploy(service): return ( msg.format( serv=service.name, - rev=latest_ready, + rev=latest_created if no_traffic else latest_ready, url=service.domain, latest_percent_traffic=latest_percent_traffic, ) @@ -183,7 +188,7 @@ def GetBuildEquivalentForSourceRunMessage(name, pack, source, subgroup=''): ) -def GetSuccessMessageForWorkerDeploy(worker): +def GetSuccessMessageForWorkerDeploy(worker, no_promote): """Returns a user message for a successful synchronous deploy. TODO(b/322180968): Once Worker API is ready, replace Service related @@ -191,8 +196,13 @@ def GetSuccessMessageForWorkerDeploy(worker): Args: worker: googlecloudsdk.api_lib.run.service.Service, Deployed service for which to build a success message. + no_promote: bool, whether the worker was deployed with --no-promote flag. """ latest_ready = worker.status.latestReadyRevisionName + # Use lastCreatedRevisionName if --no-promote is set. This was due to a bug + # where the latestReadyRevisionName was not updated in time when traffic + # update was not needed in reconciliation steps. + latest_created = worker.status.latestCreatedRevisionName msg = ( 'Worker [{{bold}}{worker}{{reset}}] ' 'revision [{{bold}}{rev}{{reset}}] ' @@ -200,5 +210,5 @@ def GetSuccessMessageForWorkerDeploy(worker): ) return msg.format( worker=worker.name, - rev=latest_ready, + rev=latest_created if no_promote else latest_ready, ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/printers/worker_printer.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/printers/worker_printer.py index 97f805cd55..53025ff844 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/printers/worker_printer.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/printers/worker_printer.py @@ -20,9 +20,9 @@ from __future__ import unicode_literals from googlecloudsdk.api_lib.run import service +from googlecloudsdk.command_lib.run.printers import instance_split_printer from googlecloudsdk.command_lib.run.printers import k8s_object_printer_util as k8s_util from googlecloudsdk.command_lib.run.printers import revision_printer -from googlecloudsdk.command_lib.run.printers import traffic_printer from googlecloudsdk.core.console import console_attr from googlecloudsdk.core.resource import custom_printer_base as cp @@ -96,12 +96,17 @@ def Transform(self, record): worker_settings = self._GetWorkerSettings(record) fmt = cp.Lines([ self._BuildWorkerHeader(record), - k8s_util.GetLabels(record.labels), ' ', - traffic_printer.TransformRouteFields(record), ' ', worker_settings, + k8s_util.GetLabels(record.labels), + ' ', + instance_split_printer.TransformInstanceSplitFields(record), + ' ', + worker_settings, (' ' if worker_settings.WillPrintOutput() else ''), - cp.Labeled([(k8s_util.LastUpdatedMessage(record), - self._RevisionPrinters(record))]), - k8s_util.FormatReadyMessage(record) + cp.Labeled([( + k8s_util.LastUpdatedMessage(record), + self._RevisionPrinters(record), + )]), + k8s_util.FormatReadyMessage(record), ]) return fmt diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/serverless_operations.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/serverless_operations.py index 4690c7eff0..219014a2e0 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/serverless_operations.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/serverless_operations.py @@ -706,34 +706,6 @@ def _AddRevisionForcingChange(self, serv, config_changes): ) config_changes.insert(0, _NewRevisionForcingChange(revision_suffix)) - def _ReplaceBaseImage( - self, - config_changes, - base_image_from_build, - ingress_container_name, - ): - """Replace the base image in the config changes with the rectified base image returned from build. - - Args: - config_changes: list, objects that implement Adjust(). - base_image_from_build: The base image from build to opt-in automatic build - image updates. - ingress_container_name: The name of the ingress container that is build - from source. This could be empty string. - """ - for change in config_changes: - if isinstance( - change, config_changes_mod.IngressContainerBaseImagesAnnotationChange - ): - config_changes_mod.IngressContainerBaseImagesAnnotationChange.replace( - change, - config_changes_mod.IngressContainerBaseImagesAnnotationChange( - base_image=base_image_from_build - ), - ) - elif isinstance(change, config_changes_mod.BaseImagesAnnotationChange): - change.updates[ingress_container_name] = base_image_from_build - def ReleaseService( self, service_ref, @@ -753,7 +725,6 @@ def ReleaseService( generate_name=False, delegate_builds=False, base_image=None, - build_from_source_container_name='', ): """Change the given service in prod using the given config_changes. @@ -787,8 +758,6 @@ def ReleaseService( generate_name: bool. If true, create a revision name, otherwise add nonce. delegate_builds: bool. If true, use the Build API to submit builds. base_image: The build base image to opt-in automatic build image updates. - build_from_source_container_name: The name of the ingress container that - is build from source. This could be empty string. Returns: service.Service, the service as returned by the server on the POST/PUT @@ -814,7 +783,7 @@ def ReleaseService( ) if build_source is not None: - image_digest, base_image_from_build = deployer.CreateImage( + image_digest = deployer.CreateImage( tracker, build_image, build_source, @@ -829,12 +798,6 @@ def ReleaseService( if image_digest is None: return config_changes.append(_AddDigestToImageChange(image_digest)) - if base_image_from_build: - self._ReplaceBaseImage( - config_changes, - base_image_from_build, - build_from_source_container_name, - ) if prefetch is None: serv = None elif build_source: @@ -1063,11 +1026,6 @@ def ListExecutions( Executions for the given surface """ messages = self.messages_module - # NB: This is a hack to compensate for apitools not generating this line. - # It's necessary to make the URL parameter be "continue". - encoding.AddCustomJsonFieldMapping( - messages.RunNamespacesExecutionsListRequest, 'continue_', 'continue' - ) request = messages.RunNamespacesExecutionsListRequest( parent=namespace_ref.RelativeName() ) @@ -1108,11 +1066,6 @@ def ListTasks( Executions for the given surface """ messages = self.messages_module - # NB: This is a hack to compensate for apitools not generating this line. - # It's necessary to make the URL parameter be "continue". - encoding.AddCustomJsonFieldMapping( - messages.RunNamespacesTasksListRequest, 'continue_', 'continue' - ) request = messages.RunNamespacesTasksListRequest( parent=namespace_ref.RelativeName() ) @@ -1161,11 +1114,6 @@ def ListRevisions( Revisions for the given surface """ messages = self.messages_module - # NB: This is a hack to compensate for apitools not generating this line. - # It's necessary to make the URL parameter be "continue". - encoding.AddCustomJsonFieldMapping( - messages.RunNamespacesRevisionsListRequest, 'continue_', 'continue' - ) request = messages.RunNamespacesRevisionsListRequest( parent=namespace_ref.RelativeName(), ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/sourcedeploys/deployer.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/sourcedeploys/deployer.py index 6a84d59ef3..4df44804ea 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/sourcedeploys/deployer.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/sourcedeploys/deployer.py @@ -41,7 +41,6 @@ def CreateImage( """Creates an image from Source.""" # Automatic base image updates implies call to build API. delegate_builds = base_image or delegate_builds - base_image_from_build = None # Upload source and call build API if it's in alpha and `--delegate-builds` # flag is set. Otherwise, default behavior stays the same. if release_track is base.ReleaseTrack.ALPHA and delegate_builds: @@ -55,7 +54,7 @@ def CreateImage( release_track, base_image, ) - response_dict, build_log_url, base_image_from_build = _SubmitBuild( + response_dict, build_log_url = _SubmitBuild( tracker, release_track, region, @@ -92,10 +91,7 @@ def CreateImage( return None # Failed to create an image else: tracker.CompleteStage(stages.BUILD_READY) - return ( - response_dict['results']['images'][0]['digest'], - base_image_from_build, - ) + return response_dict['results']['images'][0]['digest'] def _PrepareBuildConfig( @@ -156,7 +152,9 @@ def _PrepareBuildConfig( if build_pack is None: assert build_config.steps[0].name == 'gcr.io/cloud-builders/docker' # https://docs.docker.com/engine/reference/commandline/image_build/ - build_config.steps[0].args.extend(['--label', f'google.source={uri}']) + build_config.steps[0].args.extend( + ['--label', f'google.source={uri}'] + ) build_config.source = build_messages.Source( storageSource=build_messages.StorageSource( @@ -245,11 +243,10 @@ def _PrepareSubmitBuildRequest( source = sources.Upload(build_source, region, resource_ref) tracker.CompleteStage(stages.UPLOAD_SOURCE) parent = 'projects/{project}/locations/{region}'.format( - project=properties.VALUES.core.project.Get(required=True), region=region - ) + project=properties.VALUES.core.project.Get(required=True), + region=region) storage_source = messages.GoogleCloudRunV2StorageSource( - bucket=source.bucket, object=source.name, generation=source.generation - ) + bucket=source.bucket, object=source.name, generation=source.generation) buildpack_build = None docker_build = None @@ -258,14 +255,12 @@ def _PrepareSubmitBuildRequest( # https://github.com/GoogleCloudPlatform/buildpacks/blob/main/cmd/utils/label/README.md # uri = f'gs://{source.bucket}/{source.name}#{source.generation}' envs = build_pack[0].get('envs', []) - function_target_env = [ - x for x in envs if x.startswith('GOOGLE_FUNCTION_TARGET') - ] + function_target_env = [x for x in envs + if x.startswith('GOOGLE_FUNCTION_TARGET')] if function_target_env: function_target = function_target_env[0].split('=')[1] buildpack_build = messages.GoogleCloudRunV2BuildpacksBuild( - baseImage=base_image, functionTarget=function_target - ) + baseImage=base_image, functionTarget=function_target) else: docker_build = messages.GoogleCloudRunV2DockerBuild() submit_build_request = messages.RunProjectsLocationsBuildsSubmitRequest( @@ -274,9 +269,8 @@ def _PrepareSubmitBuildRequest( storageSource=storage_source, imageUri=build_image, buildpackBuild=buildpack_build, - dockerBuild=docker_build, - ), - ) + dockerBuild=docker_build,), + ) return submit_build_request @@ -286,31 +280,16 @@ def _SubmitBuild( region, submit_build_request, ): - """Call Build API to submit a build. - - Arguments: - tracker: StagedProgressTracker, to report on the progress of releasing. - release_track: ReleaseTrack, the release track of a command calling this. - region: str, The region of the control plane. - submit_build_request: SubmitBuildRequest, the request to submit build. - - Returns: - response_dict: Build resource returned by Cloud build. - build_log_url: The url to build log - build_response.baseImageUri: The rectified uri of the base image that should - be used in automatic base image update. - """ + """Calls Build API to submit a build.""" run_client = run_util.GetClientInstance(release_track) build_messages = cloudbuild_util.GetMessagesModule() build_response = run_client.projects_locations_builds.Submit( - submit_build_request - ) + submit_build_request) build_op = build_response.buildOperation json = encoding.MessageToJson(build_op.metadata) build = encoding.JsonToMessage( - build_messages.BuildOperationMetadata, json - ).build + build_messages.BuildOperationMetadata, json).build name = f'projects/{build.projectId}/locations/{region}/operations/{build.id}' build_op_ref = resources.REGISTRY.ParseRelativeName( @@ -326,7 +305,7 @@ def _SubmitBuild( ), ) response_dict = _PollUntilBuildCompletes(build_op_ref) - return response_dict, build_log_url, build_response.baseImageUri + return response_dict, build_log_url def _PollUntilBuildCompletes(build_op_ref): diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/volumes.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/volumes.py index 856feb905b..d471287586 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/volumes.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/run/volumes.py @@ -54,7 +54,7 @@ def add_volume(volume, volumes, messages, release_track): raise serverless_exceptions.ConfigurationError( 'Volume type {} not supported'.format(volume['type']) ) - vol_type.validate_volume_add(volume) + vol_type.validate_volume_add(volume, release_track) vol_type.fill_volume(volume, new_vol, messages) volumes[volume['name']] = new_vol @@ -67,7 +67,7 @@ def volume_help(release_track): _supported_volume_types.items(), key=lambda t: t[0] ): if release_track in volume_type.release_tracks(): - hlp.append(volume_type.generate_help()) + hlp.append(volume_type.generate_help(release_track)) return '\n\n'.join(hlp) @@ -109,13 +109,13 @@ def release_tracks(cls): @classmethod @abc.abstractmethod - def required_fields(cls): + def required_fields(cls, release_track): """A dict of field_name: help text for all fields that must be present.""" pass @classmethod @abc.abstractmethod - def optional_fields(cls): + def optional_fields(cls, release_track): """A dict of field_name: help text for all fields that are optional.""" pass @@ -126,10 +126,10 @@ def fill_volume(cls, volume, new_vol, messages): pass @classmethod - def validate_volume_add(cls, volume): + def validate_volume_add(cls, volume, release_track=base.ReleaseTrack.GA): """Validate that the volume dict has all needed parameters for this type.""" - required_keys = set(cls.required_fields().keys()) - optional_keys = set(cls.optional_fields().keys()) + required_keys = set(cls.required_fields(release_track).keys()) + optional_keys = set(cls.optional_fields(release_track).keys()) for key in volume: if key == 'name': continue @@ -155,26 +155,23 @@ def validate_volume_add(cls, volume): ) @classmethod - def generate_help(cls): + def generate_help(cls, release_track): """Generate help text for this volume type.""" required_fields = '\n'.join( '* {}: (required) {} '.format(name, hlp) - for name, hlp in cls.required_fields().items() + for name, hlp in cls.required_fields(release_track).items() ) required = f'\n{required_fields} ' if required_fields.strip() else '' optional_fields = '\n'.join( '* {}: (optional) {} '.format(name, hlp) - for name, hlp in cls.optional_fields().items() + for name, hlp in cls.optional_fields(release_track).items() ) optional = f'\n{optional_fields} ' if optional_fields.strip() else '' - return ( - '*{name}*: {hlp}\n Additional' - ' keys: {required}{optional} '.format( - name=cls.name(), - hlp=cls.help(), - required=required, - optional=optional, - ) + return '*{name}*: {hlp}\n Additional keys: {required}{optional} '.format( + name=cls.name(), + hlp=cls.help(), + required=required, + optional=optional, ) @@ -195,11 +192,11 @@ def help(cls): ) @classmethod - def required_fields(cls): + def required_fields(cls, release_track): return {} @classmethod - def optional_fields(cls): + def optional_fields(cls, release_track): return { 'size-limit': ( 'A quantity representing the maximum amount of memory allocated to' @@ -234,13 +231,13 @@ def help(cls): return 'Represents a volume backed by an NFS server.' @classmethod - def required_fields(cls): + def required_fields(cls, release_track): return { 'location': 'The location of the NFS Server, in the form SERVER:/PATH' } @classmethod - def optional_fields(cls): + def optional_fields(cls, release_track): return { 'readonly': ( 'A boolean. If true, this volume will be read-only from all mounts.' @@ -281,18 +278,25 @@ def help(cls): ) @classmethod - def required_fields(cls): + def required_fields(cls, release_track): return { 'bucket': 'the name of the bucket to use as the source of this volume' } @classmethod - def optional_fields(cls): - return { + def optional_fields(cls, release_track): + fields = { 'readonly': ( 'A boolean. If true, this volume will be read-only from all mounts.' ) } + if release_track == base.ReleaseTrack.ALPHA: + fields['mount-options'] = ( + 'A list of flags to pass to GCSFuse. Flags ' + + 'should be specified without leading dashes and separated by ' + + 'semicolons.' + ) + return fields @classmethod def fill_volume(cls, volume, new_vol, messages): @@ -305,6 +309,13 @@ def fill_volume(cls, volume, new_vol, messages): key='bucketName', value=volume['bucket'] ) ) + if 'mount-options' in volume: + src.volumeAttributes.additionalProperties.append( + messages.CSIVolumeSource.VolumeAttributesValue.AdditionalProperty( + key='mountOptions', + value=volume['mount-options'].replace(';', ','), + ) + ) new_vol.csi = src @@ -325,7 +336,7 @@ def help(cls): return 'Represents a secret stored in Secret Manager as a volume.' @classmethod - def required_fields(cls): + def required_fields(cls, release_track): return { 'secret': ( 'The name of the secret in Secret Manager. Must be a secret in the' @@ -337,7 +348,7 @@ def required_fields(cls): } @classmethod - def optional_fields(cls): + def optional_fields(cls, release_track): return {} @classmethod diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/constants.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/constants.py index 51818e5026..c66a4f8c36 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/constants.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/constants.py @@ -40,3 +40,14 @@ class CustomModuleType(StrEnum): ETD = 'eventThreatDetectionCustomModules' EFFECTIVE_ETD = 'effectiveEventThreatDetectionCustomModules' EFFECTIVE_SHA = 'effectiveSecurityHealthAnalyticsCustomModules' + + +class SecurityCenterServices: + SERVICE = 'securityCenterServices' + SERVICE_MAPPING = { + 'CTD': 'container-threat-detection', + 'ETD': 'event-threat-detection', + 'SHA': 'security-health-analytics', + 'VMTD': 'vm-threat-detection', + 'WSS': 'web-security-scanner', + } diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/errors.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/errors.py index 3501c4a217..d4495c3504 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/errors.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/errors.py @@ -33,6 +33,24 @@ def __init__(self, bad_parent_arg: str): ) +class InvalidServiceNameError(Error): + """An error representing an invalid service name.""" + + def __init__(self, bad_service_name_arg: str): + + key_value_strings = [ + f'{key} or {value}' + for key, value in constants.SecurityCenterServices.SERVICE_MAPPING.items() + ] + + valid_service_names = '\n\t\t'.join(key_value_strings) + + super(Error, self).__init__( + f'"{bad_service_name_arg}" is not a valid service name.\n\n\tThe' + f' expected service name is one of:\n\t\t{valid_service_names}\n' + ) + + class MissingCustomModuleNameOrIdError(Error): """An error representing a missing custom module name or id.""" diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/flags.py index b57740c15e..88f0716b7b 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/flags.py @@ -202,3 +202,49 @@ def CreateDisplayNameFlag(required=True) -> base.Argument: metavar='DISPLAY-NAME', help="""The display name of the custom module.""", ) + + +def CreateServiceNameArg() -> base.Argument: + """A positional argument representing the service name.""" + return base.Argument( + 'service_name', + help="""The service name, provided either in lowercase hyphenated form + (e.g. security-health-analytics), or in abbreviated form (e.g. sha)""", + ) + + +def CreateServiceUpdateFlags( + file_type: str, + required: bool = True, +) -> base.Argument: + """Returns a module-config flag or an enablement-state flag, or both.""" + + root = base.ArgumentGroup(mutex=False, required=required) + root.AddArgument( + base.Argument( + '--module-config-file', + required=False, + default=None, + help=( + f'Path to a {file_type} file that contains the module config to' + ' set for the given module and service.' + ), + type=arg_parsers.FileContents(), + ) + ) + root.AddArgument(CreateServiceEnablementStateFlag(required=False)) + return root + + +def CreateServiceEnablementStateFlag( + required: bool, +): + """Creates a service enablement state flag.""" + return base.Argument( + '--enablement-state', + required=required, + default=None, + help="""Sets the enablement state of the Security Center service. + Valid options are ENABLED, DISABLED, OR INHERITED. The INHERITED + state is only valid when setting the enablement state at the project or folder level.""", + ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/parsing.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/parsing.py index 89f409b701..0171375308 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/parsing.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/scc/manage/parsing.py @@ -60,6 +60,36 @@ def _GetParentResourceFromArgs(args): ) +def GetServiceNameFromArgs(args) -> str: + """Returns the specified service name from args if it exists. + + Otherwise, an exception is raised detailing the parsing error along with the + expectation. + + Args: + args: The argument input as the gcloud command. + + Raises: + InvalidServiceNameError: the specified service name was invalid. + """ + + parent = GetParentResourceNameFromArgs(args) + service_abbr = args.service_name.upper() + if ( + service_name := constants.SecurityCenterServices.SERVICE_MAPPING.get( + service_abbr + ) + ) is not None: + return f'{parent}/{constants.SecurityCenterServices.SERVICE}/{service_name}' + elif ( + args.service_name + in constants.SecurityCenterServices.SERVICE_MAPPING.values() + ): + return f'{parent}/{constants.SecurityCenterServices.SERVICE}/{args.service_name}' + else: + raise errors.InvalidServiceNameError(args.service_name) + + def GetModuleIdFromArgs(args) -> str: """Returns the module id from args.""" if not args.module_id_or_name: @@ -260,3 +290,58 @@ def CreateUpdateMaskFromArgs(args): ' enablement state (or both) must be provided to update the custom' ' module.' ) + + +def GetModuleConfigValueFromArgs(file: str): + """Process the module config file for the service.""" + if file is not None: + try: + config = yaml.load(file) + return encoding.DictToMessage( + config, messages.SecurityCenterService.ModulesValue + ) + except (yaml.YAMLParseError, AttributeError) as ype: + raise errors.InvalidConfigValueFileError( + f'Error parsing config value file [{ype}]' + ) + else: + return None + + +def GetServiceEnablementStateFromArgs(enablement_state: str): + """Parse the service enablement state.""" + state_enum = ( + messages.SecurityCenterService.IntendedEnablementStateValueValuesEnum + ) + + if enablement_state is None: + return None + + state = enablement_state.upper() + match state: + case 'ENABLED': + return state_enum.ENABLED + case 'DISABLED': + return state_enum.DISABLED + case 'INHERITED': + return state_enum.INHERITED + case _: + raise errors.InvalidEnablementStateError( + f'Error parsing enablement state. "{state}" is not a valid enablement' + ' state. Please provide one of ENABLED, DISABLED, or INHERITED.' + ) + + +def CreateUpdateMaskFromArgsForService(args): + """Create an update mask with the args given for the given service.""" + if args.enablement_state is not None and args.module_config_file is not None: + return 'intended_enablement_state,modules' + elif args.enablement_state is not None: + return 'intended_enablement_state' + elif args.module_config_file is not None: + return 'modules' + else: + raise errors.InvalidUpdateMaskInputError( + 'Error parsing Update Mask. Either a module configuration or an' + ' enablement state (or both) must be provided to update the service.' + ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/seclm/default_resources.yaml b/google-cloud-sdk/lib/googlecloudsdk/command_lib/seclm/default_resources.yaml new file mode 100644 index 0000000000..72fcbacd29 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/seclm/default_resources.yaml @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +project: + name: project + plural_name: projects + collection: seclm.projects + attributes: + - &project + parameter_name: projectsId + attribute_name: project + help: projects TBD + property: core/project + disable_auto_completers: true +project_location: + name: location + plural_name: locations + collection: seclm.projects.locations + attributes: + - *project + - &location + parameter_name: locationsId + attribute_name: location + help: locations TBD + disable_auto_completers: true +project_location_operation: + name: operation + plural_name: operations + collection: seclm.projects.locations.operations + attributes: + - *project + - *location + - &operation + parameter_name: operationsId + attribute_name: operation + help: operations TBD + disable_auto_completers: false diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/seclm/v1alpha_resources.yaml b/google-cloud-sdk/lib/googlecloudsdk/command_lib/seclm/v1alpha_resources.yaml new file mode 100644 index 0000000000..b6ea4ec626 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/seclm/v1alpha_resources.yaml @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +project: + name: project + plural_name: projects + collection: seclm.projects + attributes: + - &project + parameter_name: projectsId + attribute_name: project + help: projects TBD + property: core/project + disable_auto_completers: true +project_location: + name: location + plural_name: locations + collection: seclm.projects.locations + attributes: + - *project + - &location + parameter_name: locationsId + attribute_name: location + help: locations TBD + disable_auto_completers: true +project_location_workbench: + name: workbench + plural_name: workbenches + collection: seclm.projects.locations.workbenches + attributes: + - *project + - *location + - &workbench + parameter_name: workbenchesId + attribute_name: workbench + help: workbenches TBD + disable_auto_completers: false diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/sql/flags.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/sql/flags.py index e24446d5d2..2869a6424f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/sql/flags.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/sql/flags.py @@ -380,7 +380,6 @@ def AddFinalbackupRetentionDays(parser): required=False, help=help_text, hidden=True, - default=30, ) diff --git a/google-cloud-sdk/lib/googlecloudsdk/command_lib/storage/storage_url.py b/google-cloud-sdk/lib/googlecloudsdk/command_lib/storage/storage_url.py index 0bb0ae39cf..ad30196522 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/command_lib/storage/storage_url.py +++ b/google-cloud-sdk/lib/googlecloudsdk/command_lib/storage/storage_url.py @@ -57,6 +57,14 @@ class ProviderPrefix(enum.Enum): GS_GENERATION_REGEX = re.compile(r'(?P.+)#(?P[0-9]+)$') # Matches versioned object strings of the form 's3://bucket/obj#NULL' S3_VERSION_REGEX = re.compile(r'(?P.+)#(?P.+)$') +# Matches the accesspoint part of S3 MRAP ARN of the form +# 'arn:aws:s3::account-id:accesspoint/mrap_alias' +_S3_MRAP_ARN_REGEX_ACCESS_POINT = re.compile( + r'^(?Parn:aws:s3::.+:accesspoint\/(?:.+\.mrap))' +) +# Matches the key part of S3 MRAP ARN of the form +# 'arn:aws:s3::account-id:accesspoint/mrap_alias//key' +_S3_MRAP_ARN_REGEX_KEY = re.compile(r'.*\/\/(?P.+)$') def is_named_pipe(path): @@ -379,21 +387,40 @@ def from_url_string(cls, url_string): scheme = _get_scheme_from_url_string(url_string) # gs://a/b/c/d#num => a/b/c/d#num - schemeless_url_string = url_string[len(scheme.value + SCHEME_DELIMITER):] + schemeless_url_string = url_string[len(scheme.value + SCHEME_DELIMITER) :] if schemeless_url_string.startswith('/'): raise errors.InvalidUrlError( - ('Cloud URL scheme should be followed by colon and two slashes: "{}".' - ' Found: "{}"').format(SCHEME_DELIMITER, url_string)) - - # a/b/c/d#num => a, b/c/d#num - bucket_name, _, object_name = schemeless_url_string.partition( - CLOUD_URL_DELIMITER) + ( + 'Cloud URL scheme should be followed by colon and two slashes:' + ' "{}". Found: "{}"' + ).format(SCHEME_DELIMITER, url_string) + ) - # b/c/d#num => b/c/d, num - object_name, generation = get_generation_number_from_object_name( - scheme, object_name + s3_mrap_ap_match = ( + _S3_MRAP_ARN_REGEX_ACCESS_POINT.match(schemeless_url_string) + if scheme == ProviderPrefix.S3 + else None ) + if s3_mrap_ap_match: + # s3://arn:aws:s3:::accesspoint/.mrap// + # Handles multi-region access point type buckets for S3 use-cases. + bucket_name = s3_mrap_ap_match.group('access_point') + s3_mrap_key_match = _S3_MRAP_ARN_REGEX_KEY.match(schemeless_url_string) + object_name = ( + s3_mrap_key_match.group('key') if s3_mrap_key_match else None + ) + generation = None + else: + # a/b/c/d#num => a, b/c/d#num + bucket_name, _, object_name = schemeless_url_string.partition( + CLOUD_URL_DELIMITER + ) + + # b/c/d#num => b/c/d, num + object_name, generation = get_generation_number_from_object_name( + scheme, object_name + ) return cls(scheme, bucket_name, object_name, generation) @@ -427,14 +454,29 @@ def url_string(self): def versionless_url_string(self): if self.is_provider(): return '{}{}'.format(self.scheme.value, SCHEME_DELIMITER) + # We want to return the following URL pattern when we only have a bucket. + # We will follow the same pattern for S3 MRAP buckets as well + # when they do not have objects. elif self.is_bucket(): - return '{}{}{}/'.format(self.scheme.value, SCHEME_DELIMITER, - self.bucket_name) - return '{}{}{}/{}'.format(self.scheme.value, SCHEME_DELIMITER, - self.bucket_name, self.object_name) + return '{}{}{}/'.format( + self.scheme.value, SCHEME_DELIMITER, self.bucket_name + ) + elif self.is_s3_mrap_bucket(): + return '{}{}{}//{}'.format( + self.scheme.value, + SCHEME_DELIMITER, + self.bucket_name, + self.object_name, + ) + return '{}{}{}/{}'.format( + self.scheme.value, SCHEME_DELIMITER, self.bucket_name, self.object_name + ) @property def delimiter(self): + if self.is_s3_mrap_bucket(): + return '//' + return self.CLOUD_URL_DELIM def is_bucket(self): @@ -443,6 +485,9 @@ def is_bucket(self): def is_object(self): return bool(self.bucket_name and self.object_name) + def is_s3_mrap_bucket(self): + return bool(_S3_MRAP_ARN_REGEX_ACCESS_POINT.match(self.bucket_name)) + def is_provider(self): return bool(self.scheme and not self.bucket_name) diff --git a/google-cloud-sdk/lib/googlecloudsdk/core/config.json b/google-cloud-sdk/lib/googlecloudsdk/core/config.json index cd60955246..d74500aeac 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/core/config.json +++ b/google-cloud-sdk/lib/googlecloudsdk/core/config.json @@ -5,9 +5,9 @@ "documentation_url": "https://cloud.google.com/sdk/", "release_channel": "rapid", "release_notes_url": "https://cloud.google.com/sdk/release_notes", - "revision": 20240426154730, + "revision": 20240503145345, "snapshot_schema_version": 3, "snapshot_url": "https://dl.google.com/dl/cloudsdk/channels/rapid/components-2.json", "user_agent": "google-cloud-sdk", - "version": "474.0.0" + "version": "475.0.0" } \ No newline at end of file diff --git a/google-cloud-sdk/lib/googlecloudsdk/core/properties.py b/google-cloud-sdk/lib/googlecloudsdk/core/properties.py index 686c39861c..b34c7d2cd4 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/core/properties.py +++ b/google-cloud-sdk/lib/googlecloudsdk/core/properties.py @@ -107,6 +107,7 @@ def _DefaultToFastUpdate(): 'CLOUDSDK_INTERNAL_USER_FAST_UPDATE') == 'true') or config.INSTALLATION_CONFIG.IsAlternateReleaseChannel() or current_platform == platforms.OperatingSystem.WINDOWS + or current_platform == platforms.OperatingSystem.MACOSX ) @@ -1188,7 +1189,6 @@ def __init__(self): self.cloudfunctions = self._Add( 'cloudfunctions', command='gcloud functions') self.cloudidentity = self._Add('cloudidentity', command='gcloud identity') - self.cloudiot = self._Add('cloudiot', command='gcloud iot') self.cloudkms = self._Add('cloudkms', command='gcloud kms') self.cloudnumberregistry = self._Add( 'cloudnumberregistry', diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/accessapproval/v1/accessapproval_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/accessapproval/v1/accessapproval_v1_messages.py index f05d3a555e..2aaaec3a58 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/accessapproval/v1/accessapproval_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/accessapproval/v1/accessapproval_v1_messages.py @@ -815,6 +815,8 @@ class GoogleKeyAlgorithmValueValuesEnum(_messages.Enum): curve is only supported for HSM protection level. Other hash functions can also be used: https://cloud.google.com/kms/docs/create-validate- signatures#ecdsa_support_for_other_hash_algorithms + EC_SIGN_ED25519: EdDSA on the Curve25519 in pure mode (taking data as + input). HMAC_SHA256: HMAC-SHA256 signing with a 256 bit key. HMAC_SHA1: HMAC-SHA1 signing with a 160 bit key. HMAC_SHA384: HMAC-SHA384 signing with a 384 bit key. @@ -852,12 +854,13 @@ class GoogleKeyAlgorithmValueValuesEnum(_messages.Enum): EC_SIGN_P256_SHA256 = 26 EC_SIGN_P384_SHA384 = 27 EC_SIGN_SECP256K1_SHA256 = 28 - HMAC_SHA256 = 29 - HMAC_SHA1 = 30 - HMAC_SHA384 = 31 - HMAC_SHA512 = 32 - HMAC_SHA224 = 33 - EXTERNAL_SYMMETRIC_ENCRYPTION = 34 + EC_SIGN_ED25519 = 29 + HMAC_SHA256 = 30 + HMAC_SHA1 = 31 + HMAC_SHA384 = 32 + HMAC_SHA512 = 33 + HMAC_SHA224 = 34 + EXTERNAL_SYMMETRIC_ENCRYPTION = 35 customerKmsKeyVersion = _messages.StringField(1) googleKeyAlgorithm = _messages.EnumField('GoogleKeyAlgorithmValueValuesEnum', 2) diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/aiplatform/v1/aiplatform_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/aiplatform/v1/aiplatform_v1_messages.py index e84e6317d7..2fb5f02688 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/aiplatform/v1/aiplatform_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/aiplatform/v1/aiplatform_v1_messages.py @@ -25431,3 +25431,15 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsDatasetsSearchDataItemsRequest, 'orderByAnnotation_orderBy', 'orderByAnnotation.orderBy') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsDatasetsSearchDataItemsRequest, 'orderByAnnotation_savedQuery', 'orderByAnnotation.savedQuery') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsFeaturestoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsFeaturestoresEntityTypesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsModelsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsNotebookRuntimeTemplatesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/aiplatform/v1beta1/aiplatform_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/aiplatform/v1beta1/aiplatform_v1beta1_messages.py index 56d1b0ecb5..560e441fe4 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/aiplatform/v1beta1/aiplatform_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/aiplatform/v1beta1/aiplatform_v1beta1_messages.py @@ -40917,3 +40917,21 @@ class UtilStatusProto(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsDatasetsSearchDataItemsRequest, 'orderByAnnotation_orderBy', 'orderByAnnotation.orderBy') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsDatasetsSearchDataItemsRequest, 'orderByAnnotation_savedQuery', 'orderByAnnotation.savedQuery') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsEndpointsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsFeatureOnlineStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsFeatureOnlineStoresFeatureViewsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsFeaturestoresEntityTypesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsModelsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsNotebookRuntimeTemplatesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + AiplatformProjectsLocationsPublishersModelsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1/anthosevents_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1/anthosevents_v1_messages.py index 590735e1fe..869749d42f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1/anthosevents_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1/anthosevents_v1_messages.py @@ -3552,3 +3552,29 @@ class WebhookConversion(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + AnthoseventsApiV1NamespacesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsApiV1NamespacesSecretsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsBrokersListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsCustomresourcedefinitionsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesBrokersListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesCloudauditlogssourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesCloudpubsubsourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesCloudschedulersourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesCloudstoragesourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesTriggersListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsProjectsLocationsNamespacesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsProjectsLocationsSecretsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsTriggersListRequest, 'continue_', 'continue') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1alpha1/anthosevents_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1alpha1/anthosevents_v1alpha1_messages.py index 57291aa2a3..7a56c89830 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1alpha1/anthosevents_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1alpha1/anthosevents_v1alpha1_messages.py @@ -776,3 +776,7 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + AnthoseventsKuberunsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesCloudrunsListRequest, 'continue_', 'continue') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1beta1/anthosevents_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1beta1/anthosevents_v1beta1_messages.py index a42a5bc78e..6f18eabd7f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1beta1/anthosevents_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/anthosevents/v1beta1/anthosevents_v1beta1_messages.py @@ -3078,3 +3078,25 @@ class AdditionalProperty(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + AnthoseventsBrokersListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsCustomresourcedefinitionsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesApiserversourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesBrokersListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesCloudauditlogssourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesCloudpubsubsourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesCloudschedulersourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesCloudstoragesourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesPingsourcesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsNamespacesTriggersListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + AnthoseventsTriggersListRequest, 'continue_', 'continue') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1/apigateway_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1/apigateway_v1_messages.py index 3de99b3257..a6c95943f4 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1/apigateway_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1/apigateway_v1_messages.py @@ -1503,3 +1503,9 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ApigatewayProjectsLocationsApisGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigatewayProjectsLocationsApisConfigsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigatewayProjectsLocationsGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1alpha1/apigateway_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1alpha1/apigateway_v1alpha1_messages.py index 35da783e40..eab98d18de 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1alpha1/apigateway_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1alpha1/apigateway_v1alpha1_messages.py @@ -1641,3 +1641,9 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ApigatewayProjectsLocationsApisGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigatewayProjectsLocationsApisConfigsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigatewayProjectsLocationsGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1beta/apigateway_v1beta_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1beta/apigateway_v1beta_messages.py index 0fa3f89b47..ef84b07b1e 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1beta/apigateway_v1beta_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigateway/v1beta/apigateway_v1beta_messages.py @@ -1603,3 +1603,9 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ApigatewayProjectsLocationsApisGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigatewayProjectsLocationsApisConfigsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigatewayProjectsLocationsGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigee/v1/apigee_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigee/v1/apigee_v1_messages.py index d9aeeaa688..4dabd98299 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigee/v1/apigee_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigee/v1/apigee_v1_messages.py @@ -13559,3 +13559,15 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ApigeeOrganizationsEnvironmentsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeOrganizationsEnvironmentsDeploymentsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeOrganizationsEnvironmentsQueriesListRequest, 'from_', 'from') +encoding.AddCustomJsonFieldMapping( + ApigeeOrganizationsEnvironmentsSecurityReportsListRequest, 'from_', 'from') +encoding.AddCustomJsonFieldMapping( + ApigeeOrganizationsHostQueriesListRequest, 'from_', 'from') +encoding.AddCustomJsonFieldMapping( + ApigeeOrganizationsHostSecurityReportsListRequest, 'from_', 'from') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigeeregistry/v1/apigeeregistry_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigeeregistry/v1/apigeeregistry_v1_messages.py index eac3e3a82a..f244f103b4 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigeeregistry/v1/apigeeregistry_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apigeeregistry/v1/apigeeregistry_v1_messages.py @@ -3243,3 +3243,25 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsApisGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsApisArtifactsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsApisDeploymentsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsApisVersionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsApisVersionsArtifactsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsApisVersionsSpecsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsApisVersionsSpecsArtifactsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsArtifactsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsDocumentsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsInstancesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ApigeeregistryProjectsLocationsRuntimeGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apis_map.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apis_map.py index 4fe4ef8fc6..ae942fbb61 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apis_map.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apis_map.py @@ -3310,6 +3310,16 @@ def __repr__(self): mtls_endpoint_override=''), }, 'seclm': { + 'v1': + APIDef( + apitools=ApitoolsClientDef( + class_path='googlecloudsdk.generated_clients.apis.seclm.v1', + client_classpath='seclm_v1_client.SeclmV1', + base_url='https://seclm.googleapis.com/', + messages_modulepath='seclm_v1_messages'), + default_version=True, + enable_mtls=True, + mtls_endpoint_override=''), 'v1alpha': APIDef( apitools=ApitoolsClientDef( @@ -3317,7 +3327,7 @@ def __repr__(self): client_classpath='seclm_v1alpha_client.SeclmV1alpha', base_url='https://seclm.googleapis.com/', messages_modulepath='seclm_v1alpha_messages'), - default_version=True, + default_version=False, enable_mtls=True, mtls_endpoint_override=''), }, diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apphub/v1/apphub_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apphub/v1/apphub_v1_messages.py index 5c951efbe2..f9a76c7fc7 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apphub/v1/apphub_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apphub/v1/apphub_v1_messages.py @@ -2001,3 +2001,5 @@ class WorkloadReference(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ApphubProjectsLocationsApplicationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apphub/v1alpha/apphub_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apphub/v1alpha/apphub_v1alpha_messages.py index 68e71fcbeb..23ac5b8b9c 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apphub/v1alpha/apphub_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/apphub/v1alpha/apphub_v1alpha_messages.py @@ -2070,3 +2070,5 @@ class WorkloadReference(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ApphubProjectsLocationsApplicationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1/artifactregistry_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1/artifactregistry_v1_messages.py index 36f8cc4aa0..52232bf339 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1/artifactregistry_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1/artifactregistry_v1_messages.py @@ -3657,3 +3657,5 @@ class YumRepository(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ArtifactregistryProjectsLocationsRepositoriesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1beta1/artifactregistry_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1beta1/artifactregistry_v1beta1_messages.py index 7db8713af0..0f33d62983 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1beta1/artifactregistry_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1beta1/artifactregistry_v1beta1_messages.py @@ -1272,3 +1272,5 @@ class Version(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ArtifactregistryProjectsLocationsRepositoriesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1beta2/artifactregistry_v1beta2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1beta2/artifactregistry_v1beta2_messages.py index 75e6f8c994..b181c16db3 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1beta2/artifactregistry_v1beta2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/artifactregistry/v1beta2/artifactregistry_v1beta2_messages.py @@ -1774,3 +1774,5 @@ class PackageTypeValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ArtifactregistryProjectsLocationsRepositoriesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/assuredworkloads/v1/assuredworkloads_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/assuredworkloads/v1/assuredworkloads_v1_messages.py index 01c1df6ae9..18cfca6831 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/assuredworkloads/v1/assuredworkloads_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/assuredworkloads/v1/assuredworkloads_v1_messages.py @@ -1467,3 +1467,7 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + AssuredworkloadsOrganizationsLocationsWorkloadsViolationsListRequest, 'interval_endTime', 'interval.endTime') +encoding.AddCustomJsonFieldMapping( + AssuredworkloadsOrganizationsLocationsWorkloadsViolationsListRequest, 'interval_startTime', 'interval.startTime') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/assuredworkloads/v1beta1/assuredworkloads_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/assuredworkloads/v1beta1/assuredworkloads_v1beta1_messages.py index 7065bd4435..4fe1ddab79 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/assuredworkloads/v1beta1/assuredworkloads_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/assuredworkloads/v1beta1/assuredworkloads_v1beta1_messages.py @@ -1494,3 +1494,7 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + AssuredworkloadsOrganizationsLocationsWorkloadsViolationsListRequest, 'interval_endTime', 'interval.endTime') +encoding.AddCustomJsonFieldMapping( + AssuredworkloadsOrganizationsLocationsWorkloadsViolationsListRequest, 'interval_startTime', 'interval.startTime') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/auditmanager/v1alpha/auditmanager_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/auditmanager/v1alpha/auditmanager_v1alpha_messages.py index 12c1902059..adcc194b75 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/auditmanager/v1alpha/auditmanager_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/auditmanager/v1alpha/auditmanager_v1alpha_messages.py @@ -1306,15 +1306,17 @@ class ResourceEnrollmentStatus(_messages.Message): r"""Represents a resource (project or folder) with its enrollment status. Fields: + displayName: Output only. Display name of the project/folder. enrolled: Output only. Is resource enrolled. enrollment: Output only. Enrollment which contains enrolled destination details for a resource name: Identifier. The name of this resource. """ - enrolled = _messages.BooleanField(1) - enrollment = _messages.MessageField('Enrollment', 2) - name = _messages.StringField(3) + displayName = _messages.StringField(1) + enrolled = _messages.BooleanField(2) + enrollment = _messages.MessageField('Enrollment', 3) + name = _messages.StringField(4) class StandardQueryParameters(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/backupdr/v1/backupdr_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/backupdr/v1/backupdr_v1_messages.py index df69a6d90e..3178c44102 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/backupdr/v1/backupdr_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/backupdr/v1/backupdr_v1_messages.py @@ -3676,3 +3676,5 @@ class WorkforceIdentityBasedOAuth2ClientID(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + BackupdrProjectsLocationsManagementServersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/batch/v1/batch_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/batch/v1/batch_v1_messages.py index 62db50aed5..e5205ba76c 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/batch/v1/batch_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/batch/v1/batch_v1_messages.py @@ -1736,8 +1736,15 @@ class TaskExecution(_messages.Message): procedures, based on StatusEvent types. Fields: - exitCode: When task is completed as the status of FAILED or SUCCEEDED, - exit code is for one task execution result, default is 0 as success. + exitCode: The exit code of a finished task. If the task succeeded, the + exit code will be 0. If the task failed but not due to the following + reasons, the exit code will be 50000. Otherwise, it can be from + different sources: - Batch known failures as + https://cloud.google.com/batch/docs/troubleshooting#reserved-exit-codes. + - Batch runnable execution failures: You can rely on Batch logs for + further diagnose: https://cloud.google.com/batch/docs/analyze-job-using- + logs. If there are multiple runnables failures, Batch only exposes the + first error caught for now. """ exitCode = _messages.IntegerField(1, variant=_messages.Variant.INT32) diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/batch/v1alpha/batch_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/batch/v1alpha/batch_v1alpha_messages.py index e062cb3d92..743963a0b5 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/batch/v1alpha/batch_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/batch/v1alpha/batch_v1alpha_messages.py @@ -2275,8 +2275,15 @@ class TaskExecution(_messages.Message): procedures, based on StatusEvent types. Fields: - exitCode: When task is completed as the status of FAILED or SUCCEEDED, - exit code is for one task execution result, default is 0 as success. + exitCode: The exit code of a finished task. If the task succeeded, the + exit code will be 0. If the task failed but not due to the following + reasons, the exit code will be 50000. Otherwise, it can be from + different sources: - Batch known failures as + https://cloud.google.com/batch/docs/troubleshooting#reserved-exit-codes. + - Batch runnable execution failures: You can rely on Batch logs for + further diagnose: https://cloud.google.com/batch/docs/analyze-job-using- + logs. If there are multiple runnables failures, Batch only exposes the + first error caught for now. stderrSnippet: Optional. The tail end of any content written to standard error by the task execution. This field will be populated only when the execution failed. diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/beyondcorp/v1/beyondcorp_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/beyondcorp/v1/beyondcorp_v1_messages.py index bf213b6333..c495021673 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/beyondcorp/v1/beyondcorp_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/beyondcorp/v1/beyondcorp_v1_messages.py @@ -3113,3 +3113,13 @@ class Tunnelv1ProtoTunnelerInfo(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsAppConnectionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsAppConnectorsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsAppGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsClientConnectorServicesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsClientGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/beyondcorp/v1alpha/beyondcorp_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/beyondcorp/v1alpha/beyondcorp_v1alpha_messages.py index 0b155db78a..c9cd017b53 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/beyondcorp/v1alpha/beyondcorp_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/beyondcorp/v1alpha/beyondcorp_v1alpha_messages.py @@ -5559,3 +5559,37 @@ class Tunnelv1ProtoTunnelerInfo(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + BeyondcorpOrganizationsLocationsGlobalPartnerTenantsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpOrganizationsLocationsGlobalPartnerTenantsBrowserDlpRulesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpOrganizationsLocationsGlobalPartnerTenantsProxyConfigsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpOrganizationsLocationsInsightsConfiguredInsightRequest, 'customGrouping_fieldFilter', 'customGrouping.fieldFilter') +encoding.AddCustomJsonFieldMapping( + BeyondcorpOrganizationsLocationsInsightsConfiguredInsightRequest, 'customGrouping_groupFields', 'customGrouping.groupFields') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsAppConnectionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsAppConnectorsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsAppGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsApplicationDomainsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsApplicationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsClientConnectorServicesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsClientGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsConnectionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsConnectorsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsInsightsConfiguredInsightRequest, 'customGrouping_fieldFilter', 'customGrouping.fieldFilter') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsInsightsConfiguredInsightRequest, 'customGrouping_groupFields', 'customGrouping.groupFields') +encoding.AddCustomJsonFieldMapping( + BeyondcorpProjectsLocationsNetConnectionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/bigquery/v2/bigquery_v2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/bigquery/v2/bigquery_v2_messages.py index b84187414b..0c28b0524e 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/bigquery/v2/bigquery_v2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/bigquery/v2/bigquery_v2_messages.py @@ -9604,3 +9604,7 @@ class ViewDefinition(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + BigqueryJobsGetQueryResultsRequest, 'formatOptions_useInt64Timestamp', 'formatOptions.useInt64Timestamp') +encoding.AddCustomJsonFieldMapping( + BigqueryTabledataListRequest, 'formatOptions_useInt64Timestamp', 'formatOptions.useInt64Timestamp') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/bigtableadmin/v2/bigtableadmin_v2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/bigtableadmin/v2/bigtableadmin_v2_messages.py index a06464bfed..f1e9980486 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/bigtableadmin/v2/bigtableadmin_v2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/bigtableadmin/v2/bigtableadmin_v2_messages.py @@ -2414,6 +2414,7 @@ class Instance(_messages.Message): must both be under 128 bytes. name: The unique name of the instance. Values are of the form `projects/{project}/instances/a-z+[a-z0-9]`. + satisfiesPzi: Output only. Reserved for future use. satisfiesPzs: Output only. Reserved for future use. state: Output only. The current state of the instance. type: The type of the instance. Defaults to `PRODUCTION`. @@ -2485,9 +2486,10 @@ class AdditionalProperty(_messages.Message): displayName = _messages.StringField(2) labels = _messages.MessageField('LabelsValue', 3) name = _messages.StringField(4) - satisfiesPzs = _messages.BooleanField(5) - state = _messages.EnumField('StateValueValuesEnum', 6) - type = _messages.EnumField('TypeValueValuesEnum', 7) + satisfiesPzi = _messages.BooleanField(5) + satisfiesPzs = _messages.BooleanField(6) + state = _messages.EnumField('StateValueValuesEnum', 7) + type = _messages.EnumField('TypeValueValuesEnum', 8) class Intersection(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1/binaryauthorization_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1/binaryauthorization_v1_messages.py index c387b3c1a6..ee1b13226f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1/binaryauthorization_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1/binaryauthorization_v1_messages.py @@ -2168,3 +2168,7 @@ class MaximumUnfixableSeverityValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + BinaryauthorizationProjectsAttestorsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BinaryauthorizationProjectsPolicyGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1alpha2/binaryauthorization_v1alpha2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1alpha2/binaryauthorization_v1alpha2_messages.py index 1ec4e86dac..790b2dc7ba 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1alpha2/binaryauthorization_v1alpha2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1alpha2/binaryauthorization_v1alpha2_messages.py @@ -1266,3 +1266,9 @@ class ResultValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + BinaryauthorizationProjectsAttestorsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BinaryauthorizationProjectsContinuousValidationConfigGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BinaryauthorizationProjectsPolicyGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1beta1/binaryauthorization_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1beta1/binaryauthorization_v1beta1_messages.py index 9010150b0b..65f4566b4d 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1beta1/binaryauthorization_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/binaryauthorization/v1beta1/binaryauthorization_v1beta1_messages.py @@ -1145,3 +1145,7 @@ class ResultValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + BinaryauthorizationProjectsAttestorsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + BinaryauthorizationProjectsPolicyGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/blockchainnodeengine/v1/blockchainnodeengine_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/blockchainnodeengine/v1/blockchainnodeengine_v1_messages.py index 53fd1de496..4beb53864b 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/blockchainnodeengine/v1/blockchainnodeengine_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/blockchainnodeengine/v1/blockchainnodeengine_v1_messages.py @@ -72,6 +72,8 @@ class StateValueValuesEnum(_messages.Enum): UPDATING: The node is currently being updated. REPAIRING: The node is currently being repaired. RECONCILING: The node is currently being reconciled. + SYNCING: The node is syncing, which is the process by which it obtains + the latest block and current global state. """ STATE_UNSPECIFIED = 0 CREATING = 1 @@ -81,6 +83,7 @@ class StateValueValuesEnum(_messages.Enum): UPDATING = 5 REPAIRING = 6 RECONCILING = 7 + SYNCING = 8 @encoding.MapUnrecognizedFields('additionalProperties') class LabelsValue(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/certificatemanager/v1alpha1/certificatemanager_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/certificatemanager/v1alpha1/certificatemanager_v1alpha1_messages.py index 7894af7246..3f0816036d 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/certificatemanager/v1alpha1/certificatemanager_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/certificatemanager/v1alpha1/certificatemanager_v1alpha1_messages.py @@ -1375,3 +1375,5 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CertificatemanagerProjectsLocationsCertificatesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/certificatemanager/v1alpha2/certificatemanager_v1alpha2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/certificatemanager/v1alpha2/certificatemanager_v1alpha2_messages.py index 338d885a98..2c4ec4e757 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/certificatemanager/v1alpha2/certificatemanager_v1alpha2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/certificatemanager/v1alpha2/certificatemanager_v1alpha2_messages.py @@ -1731,3 +1731,5 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CertificatemanagerProjectsLocationsCertificatesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1/cloudasset_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1/cloudasset_v1_messages.py index 19a5df05b0..309d38c015 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1/cloudasset_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1/cloudasset_v1_messages.py @@ -6712,3 +6712,31 @@ class ZypperPatch(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_accessSelector_permissions', 'analysisQuery.accessSelector.permissions') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_accessSelector_roles', 'analysisQuery.accessSelector.roles') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_conditionContext_accessTime', 'analysisQuery.conditionContext.accessTime') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_identitySelector_identity', 'analysisQuery.identitySelector.identity') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_options_analyzeServiceAccountImpersonation', 'analysisQuery.options.analyzeServiceAccountImpersonation') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_options_expandGroups', 'analysisQuery.options.expandGroups') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_options_expandResources', 'analysisQuery.options.expandResources') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_options_expandRoles', 'analysisQuery.options.expandRoles') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_options_includeDenyPolicyAnalysis', 'analysisQuery.options.includeDenyPolicyAnalysis') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_options_outputGroupEdges', 'analysisQuery.options.outputGroupEdges') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_options_outputResourceEdges', 'analysisQuery.options.outputResourceEdges') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'analysisQuery_resourceSelector_fullResourceName', 'analysisQuery.resourceSelector.fullResourceName') +encoding.AddCustomJsonFieldMapping( + CloudassetBatchGetAssetsHistoryRequest, 'readTimeWindow_endTime', 'readTimeWindow.endTime') +encoding.AddCustomJsonFieldMapping( + CloudassetBatchGetAssetsHistoryRequest, 'readTimeWindow_startTime', 'readTimeWindow.startTime') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1p2beta1/cloudasset_v1p2beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1p2beta1/cloudasset_v1p2beta1_messages.py index 79112792d9..ceeffcea60 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1p2beta1/cloudasset_v1p2beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1p2beta1/cloudasset_v1p2beta1_messages.py @@ -875,3 +875,7 @@ class UpdateFeedRequest(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudassetBatchGetAssetsHistoryRequest, 'readTimeWindow_endTime', 'readTimeWindow.endTime') +encoding.AddCustomJsonFieldMapping( + CloudassetBatchGetAssetsHistoryRequest, 'readTimeWindow_startTime', 'readTimeWindow.startTime') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1p4alpha1/cloudasset_v1p4alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1p4alpha1/cloudasset_v1p4alpha1_messages.py index f748c4a818..463ada997e 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1p4alpha1/cloudasset_v1p4alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudasset/v1p4alpha1/cloudasset_v1p4alpha1_messages.py @@ -503,3 +503,27 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'accessSelector_permissions', 'accessSelector.permissions') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'accessSelector_roles', 'accessSelector.roles') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'identitySelector_identity', 'identitySelector.identity') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'options_expandGroups', 'options.expandGroups') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'options_expandResources', 'options.expandResources') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'options_expandRoles', 'options.expandRoles') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'options_maxFanoutsPerGroup', 'options.maxFanoutsPerGroup') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'options_maxFanoutsPerResource', 'options.maxFanoutsPerResource') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'options_outputGroupEdges', 'options.outputGroupEdges') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'options_outputPartialResultBeforeTimeout', 'options.outputPartialResultBeforeTimeout') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'options_outputResourceEdges', 'options.outputResourceEdges') +encoding.AddCustomJsonFieldMapping( + CloudassetAnalyzeIamPolicyRequest, 'resourceSelector_fullResourceName', 'resourceSelector.fullResourceName') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbilling/v1/cloudbilling_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbilling/v1/cloudbilling_v1_messages.py index a164ccd7af..7275a1e72f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbilling/v1/cloudbilling_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbilling/v1/cloudbilling_v1_messages.py @@ -1088,3 +1088,5 @@ class TierRate(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudbillingBillingAccountsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbuild/v1/cloudbuild_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbuild/v1/cloudbuild_v1_messages.py index 0a9c614997..5395e2fdfe 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbuild/v1/cloudbuild_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbuild/v1/cloudbuild_v1_messages.py @@ -440,6 +440,7 @@ class Build(_messages.Message): finishTime: Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. + gitConfig: Optional. Configuration for git operations. id: Output only. Unique identifier of the build. images: A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service @@ -580,28 +581,29 @@ class AdditionalProperty(_messages.Message): createTime = _messages.StringField(5) failureInfo = _messages.MessageField('FailureInfo', 6) finishTime = _messages.StringField(7) - id = _messages.StringField(8) - images = _messages.StringField(9, repeated=True) - logUrl = _messages.StringField(10) - logsBucket = _messages.StringField(11) - name = _messages.StringField(12) - options = _messages.MessageField('BuildOptions', 13) - projectId = _messages.StringField(14) - queueTtl = _messages.StringField(15) - results = _messages.MessageField('Results', 16) - secrets = _messages.MessageField('Secret', 17, repeated=True) - serviceAccount = _messages.StringField(18) - source = _messages.MessageField('Source', 19) - sourceProvenance = _messages.MessageField('SourceProvenance', 20) - startTime = _messages.StringField(21) - status = _messages.EnumField('StatusValueValuesEnum', 22) - statusDetail = _messages.StringField(23) - steps = _messages.MessageField('BuildStep', 24, repeated=True) - substitutions = _messages.MessageField('SubstitutionsValue', 25) - tags = _messages.StringField(26, repeated=True) - timeout = _messages.StringField(27) - timing = _messages.MessageField('TimingValue', 28) - warnings = _messages.MessageField('Warning', 29, repeated=True) + gitConfig = _messages.MessageField('GitConfig', 8) + id = _messages.StringField(9) + images = _messages.StringField(10, repeated=True) + logUrl = _messages.StringField(11) + logsBucket = _messages.StringField(12) + name = _messages.StringField(13) + options = _messages.MessageField('BuildOptions', 14) + projectId = _messages.StringField(15) + queueTtl = _messages.StringField(16) + results = _messages.MessageField('Results', 17) + secrets = _messages.MessageField('Secret', 18, repeated=True) + serviceAccount = _messages.StringField(19) + source = _messages.MessageField('Source', 20) + sourceProvenance = _messages.MessageField('SourceProvenance', 21) + startTime = _messages.StringField(22) + status = _messages.EnumField('StatusValueValuesEnum', 23) + statusDetail = _messages.StringField(24) + steps = _messages.MessageField('BuildStep', 25, repeated=True) + substitutions = _messages.MessageField('SubstitutionsValue', 26) + tags = _messages.StringField(27, repeated=True) + timeout = _messages.StringField(28) + timing = _messages.MessageField('TimingValue', 29) + warnings = _messages.MessageField('Warning', 30, repeated=True) class BuildApproval(_messages.Message): @@ -2875,6 +2877,23 @@ class DeleteWorkerPoolOperationMetadata(_messages.Message): workerPool = _messages.StringField(3) +class DeveloperConnectConfig(_messages.Message): + r"""This config defines the location of a source through Developer Connect. + + Fields: + dir: Required. Directory, relative to the source root, in which to run the + build. + gitRepositoryLink: Required. The Developer Connect Git repository link, + formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`. + revision: Required. The revision to fetch from the Git repository such as + a branch, a tag, a commit SHA, or any Git ref. + """ + + dir = _messages.StringField(1) + gitRepositoryLink = _messages.StringField(2) + revision = _messages.StringField(3) + + class Empty(_messages.Message): r"""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 @@ -2947,6 +2966,16 @@ class GCSLocation(_messages.Message): object = _messages.StringField(3) +class GitConfig(_messages.Message): + r"""GitConfig is a configuration for git operations. + + Fields: + http: Configuration for HTTP related git operations. + """ + + http = _messages.MessageField('HttpConfig', 1) + + class GitFileSource(_messages.Message): r"""GitFileSource describes a file within a (possibly remote) code repository. @@ -3537,6 +3566,17 @@ class AdditionalProperty(_messages.Message): extensions = _messages.MessageField('ExtensionsValueListEntry', 3, repeated=True) +class HttpConfig(_messages.Message): + r"""HttpConfig is a configuration for HTTP related git operations. + + Fields: + proxySecretVersionName: SecretVersion resource of the HTTP proxy URL. The + proxy URL should be in format protocol://@]proxyhost[:port]. + """ + + proxySecretVersionName = _messages.StringField(1) + + class HybridPoolConfig(_messages.Message): r"""Configuration for a Hybrid Worker Pool Next ID: 6 @@ -4658,6 +4698,8 @@ class Source(_messages.Message): Fields: connectedRepository: Optional. If provided, get the source from this 2nd- gen Google Cloud Build repository resource. + developerConnectConfig: If provided, get the source from this Developer + Connect config. gitSource: If provided, get the source from this Git repository. repoSource: If provided, get the source from this location in a Cloud Source Repository. @@ -4670,10 +4712,11 @@ class Source(_messages.Message): """ connectedRepository = _messages.MessageField('ConnectedRepository', 1) - gitSource = _messages.MessageField('GitSource', 2) - repoSource = _messages.MessageField('RepoSource', 3) - storageSource = _messages.MessageField('StorageSource', 4) - storageSourceManifest = _messages.MessageField('StorageSourceManifest', 5) + developerConnectConfig = _messages.MessageField('DeveloperConnectConfig', 2) + gitSource = _messages.MessageField('GitSource', 3) + repoSource = _messages.MessageField('RepoSource', 4) + storageSource = _messages.MessageField('StorageSource', 5) + storageSourceManifest = _messages.MessageField('StorageSourceManifest', 6) class SourceProvenance(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbuild/v2/cloudbuild_v2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbuild/v2/cloudbuild_v2_messages.py index a009c21b6a..fa4fda0ccd 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbuild/v2/cloudbuild_v2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudbuild/v2/cloudbuild_v2_messages.py @@ -4083,3 +4083,5 @@ class WorkspacePipelineTaskBinding(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudbuildProjectsLocationsConnectionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouddebugger/v2/clouddebugger_v2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouddebugger/v2/clouddebugger_v2_messages.py index 889e2db1e1..fc417f821f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouddebugger/v2/clouddebugger_v2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouddebugger/v2/clouddebugger_v2_messages.py @@ -1025,3 +1025,5 @@ class Variable(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ClouddebuggerDebuggerDebuggeesBreakpointsListRequest, 'action_value', 'action.value') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouddeploy/v1/clouddeploy_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouddeploy/v1/clouddeploy_v1_messages.py index d4ee564bbc..36d8a8198b 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouddeploy/v1/clouddeploy_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouddeploy/v1/clouddeploy_v1_messages.py @@ -6453,3 +6453,9 @@ class FailureCauseValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ClouddeployProjectsLocationsCustomTargetTypesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ClouddeployProjectsLocationsDeliveryPipelinesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ClouddeployProjectsLocationsTargetsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1_messages.py index 2a0beea73a..08768c2f68 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1_messages.py @@ -680,3 +680,19 @@ class TrackingIssue(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ClouderrorreportingProjectsEventsListRequest, 'serviceFilter_resourceType', 'serviceFilter.resourceType') +encoding.AddCustomJsonFieldMapping( + ClouderrorreportingProjectsEventsListRequest, 'serviceFilter_service', 'serviceFilter.service') +encoding.AddCustomJsonFieldMapping( + ClouderrorreportingProjectsEventsListRequest, 'serviceFilter_version', 'serviceFilter.version') +encoding.AddCustomJsonFieldMapping( + ClouderrorreportingProjectsEventsListRequest, 'timeRange_period', 'timeRange.period') +encoding.AddCustomJsonFieldMapping( + ClouderrorreportingProjectsGroupStatsListRequest, 'serviceFilter_resourceType', 'serviceFilter.resourceType') +encoding.AddCustomJsonFieldMapping( + ClouderrorreportingProjectsGroupStatsListRequest, 'serviceFilter_service', 'serviceFilter.service') +encoding.AddCustomJsonFieldMapping( + ClouderrorreportingProjectsGroupStatsListRequest, 'serviceFilter_version', 'serviceFilter.version') +encoding.AddCustomJsonFieldMapping( + ClouderrorreportingProjectsGroupStatsListRequest, 'timeRange_period', 'timeRange.period') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v1/cloudfunctions_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v1/cloudfunctions_v1_messages.py index ddeacc5fb4..1bab184329 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v1/cloudfunctions_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v1/cloudfunctions_v1_messages.py @@ -2237,3 +2237,5 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudfunctionsProjectsLocationsFunctionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2/cloudfunctions_v2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2/cloudfunctions_v2_messages.py index 1e7ec243cf..591bb786b6 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2/cloudfunctions_v2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2/cloudfunctions_v2_messages.py @@ -2609,3 +2609,5 @@ class UpgradeStateValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudfunctionsProjectsLocationsFunctionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2alpha/cloudfunctions_v2alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2alpha/cloudfunctions_v2alpha_messages.py index 241d967af7..fa5f071d12 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2alpha/cloudfunctions_v2alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2alpha/cloudfunctions_v2alpha_messages.py @@ -2609,3 +2609,5 @@ class UpgradeStateValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudfunctionsProjectsLocationsFunctionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2beta/cloudfunctions_v2beta_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2beta/cloudfunctions_v2beta_messages.py index 2c216b57e7..69196ec934 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2beta/cloudfunctions_v2beta_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudfunctions/v2beta/cloudfunctions_v2beta_messages.py @@ -2609,3 +2609,5 @@ class UpgradeStateValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudfunctionsProjectsLocationsFunctionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1/cloudidentity_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1/cloudidentity_v1_messages.py index 40473c1340..064d786c44 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1/cloudidentity_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1/cloudidentity_v1_messages.py @@ -3681,3 +3681,11 @@ class StateValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsLookupRequest, 'groupKey_id', 'groupKey.id') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsLookupRequest, 'groupKey_namespace', 'groupKey.namespace') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsMembershipsLookupRequest, 'memberKey_id', 'memberKey.id') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsMembershipsLookupRequest, 'memberKey_namespace', 'memberKey.namespace') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1alpha1/cloudidentity_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1alpha1/cloudidentity_v1alpha1_messages.py index 357ca24e25..78e65e7061 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1alpha1/cloudidentity_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1alpha1/cloudidentity_v1alpha1_messages.py @@ -3170,3 +3170,11 @@ class WipeDeviceUserResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsLookupRequest, 'groupKey_id', 'groupKey.id') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsLookupRequest, 'groupKey_namespace', 'groupKey.namespace') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsMembershipsLookupRequest, 'memberKey_id', 'memberKey.id') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsMembershipsLookupRequest, 'memberKey_namespace', 'memberKey.namespace') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1beta1/cloudidentity_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1beta1/cloudidentity_v1beta1_messages.py index c7784ce256..439ff97d8b 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1beta1/cloudidentity_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudidentity/v1beta1/cloudidentity_v1beta1_messages.py @@ -4578,3 +4578,11 @@ class WipeDeviceUserResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsLookupRequest, 'groupKey_id', 'groupKey.id') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsLookupRequest, 'groupKey_namespace', 'groupKey.namespace') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsMembershipsLookupRequest, 'memberKey_id', 'memberKey.id') +encoding.AddCustomJsonFieldMapping( + CloudidentityGroupsMembershipsLookupRequest, 'memberKey_namespace', 'memberKey.namespace') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudkms/v1/cloudkms_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudkms/v1/cloudkms_v1_messages.py index a78e411be5..c2a16c822d 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudkms/v1/cloudkms_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/cloudkms/v1/cloudkms_v1_messages.py @@ -3691,3 +3691,13 @@ class WrappingPublicKey(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + CloudkmsProjectsLocationsEkmConfigGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + CloudkmsProjectsLocationsEkmConnectionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + CloudkmsProjectsLocationsKeyRingsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + CloudkmsProjectsLocationsKeyRingsCryptoKeysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + CloudkmsProjectsLocationsKeyRingsImportJobsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/composer/v1alpha2/composer_v1alpha2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/composer/v1alpha2/composer_v1alpha2_messages.py index 0c8238ace7..83581a3a8a 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/composer/v1alpha2/composer_v1alpha2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/composer/v1alpha2/composer_v1alpha2_messages.py @@ -3338,3 +3338,7 @@ class WorkloadsConfig(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ComposerProjectsLocationsEnvironmentsDagsListStatsRequest, 'interval_endTime', 'interval.endTime') +encoding.AddCustomJsonFieldMapping( + ComposerProjectsLocationsEnvironmentsDagsListStatsRequest, 'interval_startTime', 'interval.startTime') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/alpha/compute_alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/alpha/compute_alpha_messages.py index 7452fb3c24..fd88415f1a 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/alpha/compute_alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/alpha/compute_alpha_messages.py @@ -2424,37 +2424,6 @@ class AuthorizationConfig(_messages.Message): policies = _messages.MessageField('RbacPolicy', 1, repeated=True) -class AuthorizationLoggingOptions(_messages.Message): - r"""This is deprecated and has no effect. Do not use. - - Enums: - PermissionTypeValueValuesEnum: This is deprecated and has no effect. Do - not use. - - Fields: - permissionType: This is deprecated and has no effect. Do not use. - """ - - class PermissionTypeValueValuesEnum(_messages.Enum): - r"""This is deprecated and has no effect. Do not use. - - Values: - ADMIN_READ: This is deprecated and has no effect. Do not use. - ADMIN_WRITE: This is deprecated and has no effect. Do not use. - DATA_READ: This is deprecated and has no effect. Do not use. - DATA_WRITE: This is deprecated and has no effect. Do not use. - PERMISSION_TYPE_UNSPECIFIED: This is deprecated and has no effect. Do - not use. - """ - ADMIN_READ = 0 - ADMIN_WRITE = 1 - DATA_READ = 2 - DATA_WRITE = 3 - PERMISSION_TYPE_UNSPECIFIED = 4 - - permissionType = _messages.EnumField('PermissionTypeValueValuesEnum', 1) - - class Autoscaler(_messages.Message): r"""Represents an Autoscaler resource. Google Compute Engine has two Autoscaler resources: * @@ -57921,8 +57890,6 @@ class LogConfigCloudAuditOptions(_messages.Message): LogNameValueValuesEnum: This is deprecated and has no effect. Do not use. Fields: - authorizationLoggingOptions: This is deprecated and has no effect. Do not - use. logName: This is deprecated and has no effect. Do not use. """ @@ -57938,8 +57905,7 @@ class LogNameValueValuesEnum(_messages.Enum): DATA_ACCESS = 1 UNSPECIFIED_LOG_NAME = 2 - authorizationLoggingOptions = _messages.MessageField('AuthorizationLoggingOptions', 1) - logName = _messages.EnumField('LogNameValueValuesEnum', 2) + logName = _messages.EnumField('LogNameValueValuesEnum', 1) class LogConfigCounterOptions(_messages.Message): @@ -75775,8 +75741,8 @@ class RouterBgpPeer(_messages.Message): established with routing information. The default is TRUE. enableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. - enableIpv6: Enable IPv6 traffic over BGP Peer. If not specified, it is - disabled by default. + enableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if + the peerIpAddress is version 6. exportPolicies: List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. Note that Route Policies are @@ -75788,8 +75754,7 @@ class RouterBgpPeer(_messages.Message): currently available in preview. Please use Beta API to use Route Policies. interfaceName: Name of the interface the BGP peer is associated with. - ipAddress: IP address of the interface inside Google Cloud Platform. Only - IPv4 is supported. + ipAddress: IP address of the interface inside Google Cloud Platform. ipv4NexthopAddress: IPv4 address of the interface inside Google Cloud Platform. ipv6NexthopAddress: IPv6 address of the interface inside Google Cloud @@ -75813,7 +75778,7 @@ class RouterBgpPeer(_messages.Message): peerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. peerIpAddress: IP address of the BGP interface outside Google Cloud - Platform. Only IPv4 is supported. + Platform. peerIpv4NexthopAddress: IPv4 address of the BGP interface outside Google Cloud Platform. peerIpv6NexthopAddress: IPv6 address of the BGP interface outside Google @@ -76064,10 +76029,16 @@ class RouterInterface(_messages.Message): the PARTNER InterconnectAttachment is created, updated, or deleted. Fields: - ipRange: IP address and range of the interface. The IP range must be in - the RFC3927 link-local IP address space. The value must be a CIDR- - formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the - address as it represents the IP address of the interface. + ipRange: IP address and range of the interface. - For Internet Protocol + version 4 (IPv4), the IP range must be in the RFC3927 link-local IP + address space. The value must be a CIDR-formatted string, for example, + 169.254.0.1/30. Note: Do not truncate the IP address, as it represents + the IP address of the interface. - For Internet Protocol version 6 + (IPv6), the value must be a unique local address (ULA) range from + fdff:1::/64 with a mask length of 126 or less. This value should be a + CIDR-formatted string, for example, fc00:0:1:1::1/112. Within the + router's VPC, this IPv6 prefix will be reserved exclusively for this + connection and cannot be used for any other purpose. ipVersion: IP version of this interface. linkedInterconnectAttachment: URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one @@ -76703,8 +76674,8 @@ class RouterStatusBgpPeerStatus(_messages.Message): bfdStatus: A BfdStatus attribute. enableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. - enableIpv6: Enable IPv6 traffic over BGP Peer. If not specified, it is - disabled by default. + enableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if + the peerIpAddress is version 6. ipAddress: IP address of the local BGP interface. ipv4NexthopAddress: IPv4 address of the local BGP interface. ipv6NexthopAddress: IPv6 address of the local BGP interface. @@ -78629,6 +78600,15 @@ class SecurityPolicy(_messages.Message): selfLink: [Output Only] Server-defined URL for the resource. selfLinkWithId: [Output Only] Server-defined URL for this resource with the resource id. + shortName: User-provided name of the organization security policy. The + name should be unique in the organization in which the security policy + is created. This should only be used when SecurityPolicyType is + CLOUD_ARMOR. The name must be 1-63 characters long, and comply with + https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be + 1-63 characters long and match the regular expression + `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a + lowercase letter, and all following characters must be a dash, lowercase + letter, or digit, except the last character, which cannot be a dash. type: The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter @@ -78733,8 +78713,9 @@ class AdditionalProperty(_messages.Message): rules = _messages.MessageField('SecurityPolicyRule', 19, repeated=True) selfLink = _messages.StringField(20) selfLinkWithId = _messages.StringField(21) - type = _messages.EnumField('TypeValueValuesEnum', 22) - userDefinedFields = _messages.MessageField('SecurityPolicyUserDefinedField', 23, repeated=True) + shortName = _messages.StringField(22) + type = _messages.EnumField('TypeValueValuesEnum', 23) + userDefinedFields = _messages.MessageField('SecurityPolicyUserDefinedField', 24, repeated=True) class SecurityPolicyAdaptiveProtectionConfig(_messages.Message): @@ -78931,14 +78912,21 @@ class SecurityPolicyAssociation(_messages.Message): attachmentId: The resource that the security policy is attached to. displayName: [Output Only] The display name of the security policy of the association. + excludedFolders: A list of folders to exclude from the security policy. + excludedProjects: A list of projects to exclude from the security policy. name: The name for an association. securityPolicyId: [Output Only] The security policy ID of the association. + shortName: [Output Only] The short name of the security policy of the + association. """ attachmentId = _messages.StringField(1) displayName = _messages.StringField(2) - name = _messages.StringField(3) - securityPolicyId = _messages.StringField(4) + excludedFolders = _messages.StringField(3, repeated=True) + excludedProjects = _messages.StringField(4, repeated=True) + name = _messages.StringField(5) + securityPolicyId = _messages.StringField(6) + shortName = _messages.StringField(7) class SecurityPolicyCloudArmorConfig(_messages.Message): @@ -81977,12 +81965,13 @@ class SnapshotSettingsStorageLocationSettings(_messages.Message): Messages: LocationsValue: When the policy is SPECIFIC_LOCATIONS, snapshots will be - stored in the locations listed in this field. Keys are GCS bucket - locations. + stored in the locations listed in this field. Keys are Cloud Storage + bucket locations. Only one location can be specified. Fields: locations: When the policy is SPECIFIC_LOCATIONS, snapshots will be stored - in the locations listed in this field. Keys are GCS bucket locations. + in the locations listed in this field. Keys are Cloud Storage bucket + locations. Only one location can be specified. policy: The chosen location policy. """ @@ -81992,9 +81981,9 @@ class PolicyValueValuesEnum(_messages.Enum): Values: LOCAL_REGION: Store snapshot in the same region as with the originating disk. No additional parameters are needed. - NEAREST_MULTI_REGION: Store snapshot to the nearest multi region GCS - bucket, relative to the originating disk. No additional parameters are - needed. + NEAREST_MULTI_REGION: Store snapshot in the nearest multi region Cloud + Storage bucket, relative to the originating disk. No additional + parameters are needed. SPECIFIC_LOCATIONS: Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field. @@ -82008,7 +81997,8 @@ class PolicyValueValuesEnum(_messages.Enum): @encoding.MapUnrecognizedFields('additionalProperties') class LocationsValue(_messages.Message): r"""When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the - locations listed in this field. Keys are GCS bucket locations. + locations listed in this field. Keys are Cloud Storage bucket locations. + Only one location can be specified. Messages: AdditionalProperty: An additional property for a LocationsValue object. @@ -82040,7 +82030,8 @@ class SnapshotSettingsStorageLocationSettingsStorageLocationPreference(_messages r"""A structure for specifying storage locations. Fields: - name: Name of the location. It should be one of the GCS buckets. + name: Name of the location. It should be one of the Cloud Storage buckets. + Only one location can be specified. """ name = _messages.StringField(1) diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/beta/compute_beta_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/beta/compute_beta_messages.py index 13657f5f67..1fdd67f164 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/beta/compute_beta_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/beta/compute_beta_messages.py @@ -2277,37 +2277,6 @@ class LogTypeValueValuesEnum(_messages.Enum): logType = _messages.EnumField('LogTypeValueValuesEnum', 3) -class AuthorizationLoggingOptions(_messages.Message): - r"""This is deprecated and has no effect. Do not use. - - Enums: - PermissionTypeValueValuesEnum: This is deprecated and has no effect. Do - not use. - - Fields: - permissionType: This is deprecated and has no effect. Do not use. - """ - - class PermissionTypeValueValuesEnum(_messages.Enum): - r"""This is deprecated and has no effect. Do not use. - - Values: - ADMIN_READ: This is deprecated and has no effect. Do not use. - ADMIN_WRITE: This is deprecated and has no effect. Do not use. - DATA_READ: This is deprecated and has no effect. Do not use. - DATA_WRITE: This is deprecated and has no effect. Do not use. - PERMISSION_TYPE_UNSPECIFIED: This is deprecated and has no effect. Do - not use. - """ - ADMIN_READ = 0 - ADMIN_WRITE = 1 - DATA_READ = 2 - DATA_WRITE = 3 - PERMISSION_TYPE_UNSPECIFIED = 4 - - permissionType = _messages.EnumField('PermissionTypeValueValuesEnum', 1) - - class Autoscaler(_messages.Message): r"""Represents an Autoscaler resource. Google Compute Engine has two Autoscaler resources: * @@ -6759,6 +6728,7 @@ class TypeValueValuesEnum(_messages.Enum): Values: ACCELERATOR_OPTIMIZED: ACCELERATOR_OPTIMIZED_A3: + ACCELERATOR_OPTIMIZED_A3_MEGA: COMPUTE_OPTIMIZED: COMPUTE_OPTIMIZED_C2D: COMPUTE_OPTIMIZED_C3: @@ -6778,22 +6748,23 @@ class TypeValueValuesEnum(_messages.Enum): """ ACCELERATOR_OPTIMIZED = 0 ACCELERATOR_OPTIMIZED_A3 = 1 - COMPUTE_OPTIMIZED = 2 - COMPUTE_OPTIMIZED_C2D = 3 - COMPUTE_OPTIMIZED_C3 = 4 - COMPUTE_OPTIMIZED_C3D = 5 - COMPUTE_OPTIMIZED_H3 = 6 - GENERAL_PURPOSE = 7 - GENERAL_PURPOSE_E2 = 8 - GENERAL_PURPOSE_N2 = 9 - GENERAL_PURPOSE_N2D = 10 - GENERAL_PURPOSE_N4 = 11 - GENERAL_PURPOSE_T2D = 12 - GRAPHICS_OPTIMIZED = 13 - MEMORY_OPTIMIZED = 14 - MEMORY_OPTIMIZED_M3 = 15 - STORAGE_OPTIMIZED_Z3 = 16 - TYPE_UNSPECIFIED = 17 + ACCELERATOR_OPTIMIZED_A3_MEGA = 2 + COMPUTE_OPTIMIZED = 3 + COMPUTE_OPTIMIZED_C2D = 4 + COMPUTE_OPTIMIZED_C3 = 5 + COMPUTE_OPTIMIZED_C3D = 6 + COMPUTE_OPTIMIZED_H3 = 7 + GENERAL_PURPOSE = 8 + GENERAL_PURPOSE_E2 = 9 + GENERAL_PURPOSE_N2 = 10 + GENERAL_PURPOSE_N2D = 11 + GENERAL_PURPOSE_N4 = 12 + GENERAL_PURPOSE_T2D = 13 + GRAPHICS_OPTIMIZED = 14 + MEMORY_OPTIMIZED = 15 + MEMORY_OPTIMIZED_M3 = 16 + STORAGE_OPTIMIZED_Z3 = 17 + TYPE_UNSPECIFIED = 18 autoRenew = _messages.BooleanField(1) category = _messages.EnumField('CategoryValueValuesEnum', 2) @@ -53779,8 +53750,6 @@ class LogConfigCloudAuditOptions(_messages.Message): LogNameValueValuesEnum: This is deprecated and has no effect. Do not use. Fields: - authorizationLoggingOptions: This is deprecated and has no effect. Do not - use. logName: This is deprecated and has no effect. Do not use. """ @@ -53796,8 +53765,7 @@ class LogNameValueValuesEnum(_messages.Enum): DATA_ACCESS = 1 UNSPECIFIED_LOG_NAME = 2 - authorizationLoggingOptions = _messages.MessageField('AuthorizationLoggingOptions', 1) - logName = _messages.EnumField('LogNameValueValuesEnum', 2) + logName = _messages.EnumField('LogNameValueValuesEnum', 1) class LogConfigCounterOptions(_messages.Message): @@ -69171,8 +69139,8 @@ class RouterBgpPeer(_messages.Message): established with routing information. The default is TRUE. enableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. - enableIpv6: Enable IPv6 traffic over BGP Peer. If not specified, it is - disabled by default. + enableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if + the peerIpAddress is version 6. exportPolicies: List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. Note that Route Policies are @@ -69184,8 +69152,7 @@ class RouterBgpPeer(_messages.Message): currently available in preview. Please use Beta API to use Route Policies. interfaceName: Name of the interface the BGP peer is associated with. - ipAddress: IP address of the interface inside Google Cloud Platform. Only - IPv4 is supported. + ipAddress: IP address of the interface inside Google Cloud Platform. ipv4NexthopAddress: IPv4 address of the interface inside Google Cloud Platform. ipv6NexthopAddress: IPv6 address of the interface inside Google Cloud @@ -69209,7 +69176,7 @@ class RouterBgpPeer(_messages.Message): peerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. peerIpAddress: IP address of the BGP interface outside Google Cloud - Platform. Only IPv4 is supported. + Platform. peerIpv4NexthopAddress: IPv4 address of the BGP interface outside Google Cloud Platform. peerIpv6NexthopAddress: IPv6 address of the BGP interface outside Google @@ -69384,10 +69351,16 @@ class RouterInterface(_messages.Message): the PARTNER InterconnectAttachment is created, updated, or deleted. Fields: - ipRange: IP address and range of the interface. The IP range must be in - the RFC3927 link-local IP address space. The value must be a CIDR- - formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the - address as it represents the IP address of the interface. + ipRange: IP address and range of the interface. - For Internet Protocol + version 4 (IPv4), the IP range must be in the RFC3927 link-local IP + address space. The value must be a CIDR-formatted string, for example, + 169.254.0.1/30. Note: Do not truncate the IP address, as it represents + the IP address of the interface. - For Internet Protocol version 6 + (IPv6), the value must be a unique local address (ULA) range from + fdff:1::/64 with a mask length of 126 or less. This value should be a + CIDR-formatted string, for example, fc00:0:1:1::1/112. Within the + router's VPC, this IPv6 prefix will be reserved exclusively for this + connection and cannot be used for any other purpose. ipVersion: IP version of this interface. linkedInterconnectAttachment: URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one @@ -70020,8 +69993,8 @@ class RouterStatusBgpPeerStatus(_messages.Message): bfdStatus: A BfdStatus attribute. enableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. - enableIpv6: Enable IPv6 traffic over BGP Peer. If not specified, it is - disabled by default. + enableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if + the peerIpAddress is version 6. ipAddress: IP address of the local BGP interface. ipv4NexthopAddress: IPv4 address of the local BGP interface. ipv6NexthopAddress: IPv6 address of the local BGP interface. @@ -71717,6 +71690,15 @@ class SecurityPolicy(_messages.Message): selfLink: [Output Only] Server-defined URL for the resource. selfLinkWithId: [Output Only] Server-defined URL for this resource with the resource id. + shortName: User-provided name of the organization security policy. The + name should be unique in the organization in which the security policy + is created. This should only be used when SecurityPolicyType is + CLOUD_ARMOR. The name must be 1-63 characters long, and comply with + https://www.ietf.org/rfc/rfc1035.txt. Specifically, the name must be + 1-63 characters long and match the regular expression + `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a + lowercase letter, and all following characters must be a dash, lowercase + letter, or digit, except the last character, which cannot be a dash. type: The type indicates the intended use of the security policy. - CLOUD_ARMOR: Cloud Armor backend security policies can be configured to filter incoming HTTP requests targeting backend services. They filter @@ -71818,8 +71800,9 @@ class AdditionalProperty(_messages.Message): rules = _messages.MessageField('SecurityPolicyRule', 18, repeated=True) selfLink = _messages.StringField(19) selfLinkWithId = _messages.StringField(20) - type = _messages.EnumField('TypeValueValuesEnum', 21) - userDefinedFields = _messages.MessageField('SecurityPolicyUserDefinedField', 22, repeated=True) + shortName = _messages.StringField(21) + type = _messages.EnumField('TypeValueValuesEnum', 22) + userDefinedFields = _messages.MessageField('SecurityPolicyUserDefinedField', 23, repeated=True) class SecurityPolicyAdaptiveProtectionConfig(_messages.Message): @@ -72016,14 +71999,21 @@ class SecurityPolicyAssociation(_messages.Message): attachmentId: The resource that the security policy is attached to. displayName: [Output Only] The display name of the security policy of the association. + excludedFolders: A list of folders to exclude from the security policy. + excludedProjects: A list of projects to exclude from the security policy. name: The name for an association. securityPolicyId: [Output Only] The security policy ID of the association. + shortName: [Output Only] The short name of the security policy of the + association. """ attachmentId = _messages.StringField(1) displayName = _messages.StringField(2) - name = _messages.StringField(3) - securityPolicyId = _messages.StringField(4) + excludedFolders = _messages.StringField(3, repeated=True) + excludedProjects = _messages.StringField(4, repeated=True) + name = _messages.StringField(5) + securityPolicyId = _messages.StringField(6) + shortName = _messages.StringField(7) class SecurityPolicyDdosProtectionConfig(_messages.Message): @@ -74582,12 +74572,13 @@ class SnapshotSettingsStorageLocationSettings(_messages.Message): Messages: LocationsValue: When the policy is SPECIFIC_LOCATIONS, snapshots will be - stored in the locations listed in this field. Keys are GCS bucket - locations. + stored in the locations listed in this field. Keys are Cloud Storage + bucket locations. Only one location can be specified. Fields: locations: When the policy is SPECIFIC_LOCATIONS, snapshots will be stored - in the locations listed in this field. Keys are GCS bucket locations. + in the locations listed in this field. Keys are Cloud Storage bucket + locations. Only one location can be specified. policy: The chosen location policy. """ @@ -74597,9 +74588,9 @@ class PolicyValueValuesEnum(_messages.Enum): Values: LOCAL_REGION: Store snapshot in the same region as with the originating disk. No additional parameters are needed. - NEAREST_MULTI_REGION: Store snapshot to the nearest multi region GCS - bucket, relative to the originating disk. No additional parameters are - needed. + NEAREST_MULTI_REGION: Store snapshot in the nearest multi region Cloud + Storage bucket, relative to the originating disk. No additional + parameters are needed. SPECIFIC_LOCATIONS: Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field. @@ -74613,7 +74604,8 @@ class PolicyValueValuesEnum(_messages.Enum): @encoding.MapUnrecognizedFields('additionalProperties') class LocationsValue(_messages.Message): r"""When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the - locations listed in this field. Keys are GCS bucket locations. + locations listed in this field. Keys are Cloud Storage bucket locations. + Only one location can be specified. Messages: AdditionalProperty: An additional property for a LocationsValue object. @@ -74645,7 +74637,8 @@ class SnapshotSettingsStorageLocationSettingsStorageLocationPreference(_messages r"""A structure for specifying storage locations. Fields: - name: Name of the location. It should be one of the GCS buckets. + name: Name of the location. It should be one of the Cloud Storage buckets. + Only one location can be specified. """ name = _messages.StringField(1) diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/v1/compute_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/v1/compute_v1_messages.py index 511b275b4a..9537f562de 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/v1/compute_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/compute/v1/compute_v1_messages.py @@ -2210,37 +2210,6 @@ class LogTypeValueValuesEnum(_messages.Enum): logType = _messages.EnumField('LogTypeValueValuesEnum', 3) -class AuthorizationLoggingOptions(_messages.Message): - r"""This is deprecated and has no effect. Do not use. - - Enums: - PermissionTypeValueValuesEnum: This is deprecated and has no effect. Do - not use. - - Fields: - permissionType: This is deprecated and has no effect. Do not use. - """ - - class PermissionTypeValueValuesEnum(_messages.Enum): - r"""This is deprecated and has no effect. Do not use. - - Values: - ADMIN_READ: This is deprecated and has no effect. Do not use. - ADMIN_WRITE: This is deprecated and has no effect. Do not use. - DATA_READ: This is deprecated and has no effect. Do not use. - DATA_WRITE: This is deprecated and has no effect. Do not use. - PERMISSION_TYPE_UNSPECIFIED: This is deprecated and has no effect. Do - not use. - """ - ADMIN_READ = 0 - ADMIN_WRITE = 1 - DATA_READ = 2 - DATA_WRITE = 3 - PERMISSION_TYPE_UNSPECIFIED = 4 - - permissionType = _messages.EnumField('PermissionTypeValueValuesEnum', 1) - - class Autoscaler(_messages.Message): r"""Represents an Autoscaler resource. Google Compute Engine has two Autoscaler resources: * [Zonal](/compute/docs/reference/rest/v1/autoscalers) @@ -6497,6 +6466,7 @@ class TypeValueValuesEnum(_messages.Enum): Values: ACCELERATOR_OPTIMIZED: ACCELERATOR_OPTIMIZED_A3: + ACCELERATOR_OPTIMIZED_A3_MEGA: COMPUTE_OPTIMIZED: COMPUTE_OPTIMIZED_C2D: COMPUTE_OPTIMIZED_C3: @@ -6516,22 +6486,23 @@ class TypeValueValuesEnum(_messages.Enum): """ ACCELERATOR_OPTIMIZED = 0 ACCELERATOR_OPTIMIZED_A3 = 1 - COMPUTE_OPTIMIZED = 2 - COMPUTE_OPTIMIZED_C2D = 3 - COMPUTE_OPTIMIZED_C3 = 4 - COMPUTE_OPTIMIZED_C3D = 5 - COMPUTE_OPTIMIZED_H3 = 6 - GENERAL_PURPOSE = 7 - GENERAL_PURPOSE_E2 = 8 - GENERAL_PURPOSE_N2 = 9 - GENERAL_PURPOSE_N2D = 10 - GENERAL_PURPOSE_N4 = 11 - GENERAL_PURPOSE_T2D = 12 - GRAPHICS_OPTIMIZED = 13 - MEMORY_OPTIMIZED = 14 - MEMORY_OPTIMIZED_M3 = 15 - STORAGE_OPTIMIZED_Z3 = 16 - TYPE_UNSPECIFIED = 17 + ACCELERATOR_OPTIMIZED_A3_MEGA = 2 + COMPUTE_OPTIMIZED = 3 + COMPUTE_OPTIMIZED_C2D = 4 + COMPUTE_OPTIMIZED_C3 = 5 + COMPUTE_OPTIMIZED_C3D = 6 + COMPUTE_OPTIMIZED_H3 = 7 + GENERAL_PURPOSE = 8 + GENERAL_PURPOSE_E2 = 9 + GENERAL_PURPOSE_N2 = 10 + GENERAL_PURPOSE_N2D = 11 + GENERAL_PURPOSE_N4 = 12 + GENERAL_PURPOSE_T2D = 13 + GRAPHICS_OPTIMIZED = 14 + MEMORY_OPTIMIZED = 15 + MEMORY_OPTIMIZED_M3 = 16 + STORAGE_OPTIMIZED_Z3 = 17 + TYPE_UNSPECIFIED = 18 autoRenew = _messages.BooleanField(1) category = _messages.EnumField('CategoryValueValuesEnum', 2) @@ -49565,8 +49536,6 @@ class LogConfigCloudAuditOptions(_messages.Message): LogNameValueValuesEnum: This is deprecated and has no effect. Do not use. Fields: - authorizationLoggingOptions: This is deprecated and has no effect. Do not - use. logName: This is deprecated and has no effect. Do not use. """ @@ -49582,8 +49551,7 @@ class LogNameValueValuesEnum(_messages.Enum): DATA_ACCESS = 1 UNSPECIFIED_LOG_NAME = 2 - authorizationLoggingOptions = _messages.MessageField('AuthorizationLoggingOptions', 1) - logName = _messages.EnumField('LogNameValueValuesEnum', 2) + logName = _messages.EnumField('LogNameValueValuesEnum', 1) class LogConfigCounterOptions(_messages.Message): @@ -64259,6 +64227,11 @@ class RouterBgp(_messages.Message): ASN, either 16-bit or 32-bit. The value will be fixed for this router resource. All VPN tunnels that link to this router will have the same local ASN. + identifierRange: Explicitly specifies a range of valid BGP Identifiers for + this Router. It is provided as a link-local IPv4 range (from + 169.254.0.0/16), of size at least /30, even if the BGP sessions are over + IPv6. It must not overlap with any IPv4 BGP session ranges. Other + vendors commonly call this "router ID". keepaliveInterval: The interval in seconds between BGP keepalive messages that are sent to the peer. Hold time is three times the interval at which keepalive messages are sent, and the hold time is the maximum @@ -64293,7 +64266,8 @@ class AdvertisedGroupsValueListEntryValuesEnum(_messages.Enum): advertisedGroups = _messages.EnumField('AdvertisedGroupsValueListEntryValuesEnum', 2, repeated=True) advertisedIpRanges = _messages.MessageField('RouterAdvertisedIpRange', 3, repeated=True) asn = _messages.IntegerField(4, variant=_messages.Variant.UINT32) - keepaliveInterval = _messages.IntegerField(5, variant=_messages.Variant.UINT32) + identifierRange = _messages.StringField(5) + keepaliveInterval = _messages.IntegerField(6, variant=_messages.Variant.UINT32) class RouterBgpPeer(_messages.Message): @@ -64347,8 +64321,10 @@ class RouterBgpPeer(_messages.Message): session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE. - enableIpv6: Enable IPv6 traffic over BGP Peer. If not specified, it is - disabled by default. + enableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if + the peerIpAddress is version 4. + enableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if + the peerIpAddress is version 6. exportPolicies: List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. Note that Route Policies are @@ -64360,8 +64336,9 @@ class RouterBgpPeer(_messages.Message): currently available in preview. Please use Beta API to use Route Policies. interfaceName: Name of the interface the BGP peer is associated with. - ipAddress: IP address of the interface inside Google Cloud Platform. Only - IPv4 is supported. + ipAddress: IP address of the interface inside Google Cloud Platform. + ipv4NexthopAddress: IPv4 address of the interface inside Google Cloud + Platform. ipv6NexthopAddress: IPv6 address of the interface inside Google Cloud Platform. managementType: [Output Only] The resource that configures and manages @@ -64383,7 +64360,9 @@ class RouterBgpPeer(_messages.Message): peerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface may use a different value. peerIpAddress: IP address of the BGP interface outside Google Cloud - Platform. Only IPv4 is supported. + Platform. + peerIpv4NexthopAddress: IPv4 address of the BGP interface outside Google + Cloud Platform. peerIpv6NexthopAddress: IPv6 address of the BGP interface outside Google Cloud Platform. routerApplianceInstance: URI of the VM instance that is used as third- @@ -64456,19 +64435,22 @@ class ManagementTypeValueValuesEnum(_messages.Enum): customLearnedIpRanges = _messages.MessageField('RouterBgpPeerCustomLearnedIpRange', 6, repeated=True) customLearnedRoutePriority = _messages.IntegerField(7, variant=_messages.Variant.INT32) enable = _messages.EnumField('EnableValueValuesEnum', 8) - enableIpv6 = _messages.BooleanField(9) - exportPolicies = _messages.StringField(10, repeated=True) - importPolicies = _messages.StringField(11, repeated=True) - interfaceName = _messages.StringField(12) - ipAddress = _messages.StringField(13) - ipv6NexthopAddress = _messages.StringField(14) - managementType = _messages.EnumField('ManagementTypeValueValuesEnum', 15) - md5AuthenticationKeyName = _messages.StringField(16) - name = _messages.StringField(17) - peerAsn = _messages.IntegerField(18, variant=_messages.Variant.UINT32) - peerIpAddress = _messages.StringField(19) - peerIpv6NexthopAddress = _messages.StringField(20) - routerApplianceInstance = _messages.StringField(21) + enableIpv4 = _messages.BooleanField(9) + enableIpv6 = _messages.BooleanField(10) + exportPolicies = _messages.StringField(11, repeated=True) + importPolicies = _messages.StringField(12, repeated=True) + interfaceName = _messages.StringField(13) + ipAddress = _messages.StringField(14) + ipv4NexthopAddress = _messages.StringField(15) + ipv6NexthopAddress = _messages.StringField(16) + managementType = _messages.EnumField('ManagementTypeValueValuesEnum', 17) + md5AuthenticationKeyName = _messages.StringField(18) + name = _messages.StringField(19) + peerAsn = _messages.IntegerField(20, variant=_messages.Variant.UINT32) + peerIpAddress = _messages.StringField(21) + peerIpv4NexthopAddress = _messages.StringField(22) + peerIpv6NexthopAddress = _messages.StringField(23) + routerApplianceInstance = _messages.StringField(24) class RouterBgpPeerBfd(_messages.Message): @@ -64543,6 +64525,7 @@ class RouterInterface(_messages.Message): r"""A RouterInterface object. Enums: + IpVersionValueValuesEnum: IP version of this interface. ManagementTypeValueValuesEnum: [Output Only] The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by users. - MANAGED_BY_ATTACHMENT is an @@ -64552,10 +64535,17 @@ class RouterInterface(_messages.Message): the PARTNER InterconnectAttachment is created, updated, or deleted. Fields: - ipRange: IP address and range of the interface. The IP range must be in - the RFC3927 link-local IP address space. The value must be a CIDR- - formatted string, for example: 169.254.0.1/30. NOTE: Do not truncate the - address as it represents the IP address of the interface. + ipRange: IP address and range of the interface. - For Internet Protocol + version 4 (IPv4), the IP range must be in the RFC3927 link-local IP + address space. The value must be a CIDR-formatted string, for example, + 169.254.0.1/30. Note: Do not truncate the IP address, as it represents + the IP address of the interface. - For Internet Protocol version 6 + (IPv6), the value must be a unique local address (ULA) range from + fdff:1::/64 with a mask length of 126 or less. This value should be a + CIDR-formatted string, for example, fc00:0:1:1::1/112. Within the + router's VPC, this IPv6 prefix will be reserved exclusively for this + connection and cannot be used for any other purpose. + ipVersion: IP version of this interface. linkedInterconnectAttachment: URI of the linked Interconnect attachment. It must be in the same region as the router. Each interface can have one linked resource, which can be a VPN tunnel, an Interconnect attachment, @@ -64598,6 +64588,16 @@ class RouterInterface(_messages.Message): here. """ + class IpVersionValueValuesEnum(_messages.Enum): + r"""IP version of this interface. + + Values: + IPV4: + IPV6: + """ + IPV4 = 0 + IPV6 = 1 + class ManagementTypeValueValuesEnum(_messages.Enum): r"""[Output Only] The resource that configures and manages this interface. - MANAGED_BY_USER is the default value and can be managed directly by @@ -64620,13 +64620,14 @@ class ManagementTypeValueValuesEnum(_messages.Enum): MANAGED_BY_USER = 1 ipRange = _messages.StringField(1) - linkedInterconnectAttachment = _messages.StringField(2) - linkedVpnTunnel = _messages.StringField(3) - managementType = _messages.EnumField('ManagementTypeValueValuesEnum', 4) - name = _messages.StringField(5) - privateIpAddress = _messages.StringField(6) - redundantInterface = _messages.StringField(7) - subnetwork = _messages.StringField(8) + ipVersion = _messages.EnumField('IpVersionValueValuesEnum', 2) + linkedInterconnectAttachment = _messages.StringField(3) + linkedVpnTunnel = _messages.StringField(4) + managementType = _messages.EnumField('ManagementTypeValueValuesEnum', 5) + name = _messages.StringField(6) + privateIpAddress = _messages.StringField(7) + redundantInterface = _messages.StringField(8) + subnetwork = _messages.StringField(9) class RouterList(_messages.Message): @@ -65174,9 +65175,12 @@ class RouterStatusBgpPeerStatus(_messages.Message): Fields: advertisedRoutes: Routes that were advertised to the remote BGP peer bfdStatus: A BfdStatus attribute. - enableIpv6: Enable IPv6 traffic over BGP Peer. If not specified, it is - disabled by default. + enableIpv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if + the peerIpAddress is version 4. + enableIpv6: Enable IPv6 traffic over BGP Peer. It is enabled by default if + the peerIpAddress is version 6. ipAddress: IP address of the local BGP interface. + ipv4NexthopAddress: IPv4 address of the local BGP interface. ipv6NexthopAddress: IPv6 address of the local BGP interface. linkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls. md5AuthEnabled: Informs whether MD5 authentication is enabled on this BGP @@ -65184,6 +65188,7 @@ class RouterStatusBgpPeerStatus(_messages.Message): name: Name of this BGP peer. Unique within the Routers resource. numLearnedRoutes: Number of routes learned from the remote BGP Peer. peerIpAddress: IP address of the remote BGP interface. + peerIpv4NexthopAddress: IPv4 address of the remote BGP interface. peerIpv6NexthopAddress: IPv6 address of the remote BGP interface. routerApplianceInstance: [Output only] URI of the VM instance that is used as third-party router appliances such as Next Gen Firewalls, Virtual @@ -65202,13 +65207,19 @@ class StatusReasonValueValuesEnum(_messages.Enum): r"""Indicates why particular status was returned. Values: + IPV4_PEER_ON_IPV6_ONLY_CONNECTION: BGP peer disabled because it requires + IPv4 but the underlying connection is IPv6-only. + IPV6_PEER_ON_IPV4_ONLY_CONNECTION: BGP peer disabled because it requires + IPv6 but the underlying connection is IPv4-only. MD5_AUTH_INTERNAL_PROBLEM: Indicates internal problems with configuration of MD5 authentication. This particular reason can only be returned when md5AuthEnabled is true and status is DOWN. STATUS_REASON_UNSPECIFIED: """ - MD5_AUTH_INTERNAL_PROBLEM = 0 - STATUS_REASON_UNSPECIFIED = 1 + IPV4_PEER_ON_IPV6_ONLY_CONNECTION = 0 + IPV6_PEER_ON_IPV4_ONLY_CONNECTION = 1 + MD5_AUTH_INTERNAL_PROBLEM = 2 + STATUS_REASON_UNSPECIFIED = 3 class StatusValueValuesEnum(_messages.Enum): r"""Status of the BGP peer: {UP, DOWN} @@ -65224,21 +65235,24 @@ class StatusValueValuesEnum(_messages.Enum): advertisedRoutes = _messages.MessageField('Route', 1, repeated=True) bfdStatus = _messages.MessageField('BfdStatus', 2) - enableIpv6 = _messages.BooleanField(3) - ipAddress = _messages.StringField(4) - ipv6NexthopAddress = _messages.StringField(5) - linkedVpnTunnel = _messages.StringField(6) - md5AuthEnabled = _messages.BooleanField(7) - name = _messages.StringField(8) - numLearnedRoutes = _messages.IntegerField(9, variant=_messages.Variant.UINT32) - peerIpAddress = _messages.StringField(10) - peerIpv6NexthopAddress = _messages.StringField(11) - routerApplianceInstance = _messages.StringField(12) - state = _messages.StringField(13) - status = _messages.EnumField('StatusValueValuesEnum', 14) - statusReason = _messages.EnumField('StatusReasonValueValuesEnum', 15) - uptime = _messages.StringField(16) - uptimeSeconds = _messages.StringField(17) + enableIpv4 = _messages.BooleanField(3) + enableIpv6 = _messages.BooleanField(4) + ipAddress = _messages.StringField(5) + ipv4NexthopAddress = _messages.StringField(6) + ipv6NexthopAddress = _messages.StringField(7) + linkedVpnTunnel = _messages.StringField(8) + md5AuthEnabled = _messages.BooleanField(9) + name = _messages.StringField(10) + numLearnedRoutes = _messages.IntegerField(11, variant=_messages.Variant.UINT32) + peerIpAddress = _messages.StringField(12) + peerIpv4NexthopAddress = _messages.StringField(13) + peerIpv6NexthopAddress = _messages.StringField(14) + routerApplianceInstance = _messages.StringField(15) + state = _messages.StringField(16) + status = _messages.EnumField('StatusValueValuesEnum', 17) + statusReason = _messages.EnumField('StatusReasonValueValuesEnum', 18) + uptime = _messages.StringField(19) + uptimeSeconds = _messages.StringField(20) class RouterStatusNatStatus(_messages.Message): @@ -69008,12 +69022,13 @@ class SnapshotSettingsStorageLocationSettings(_messages.Message): Messages: LocationsValue: When the policy is SPECIFIC_LOCATIONS, snapshots will be - stored in the locations listed in this field. Keys are GCS bucket - locations. + stored in the locations listed in this field. Keys are Cloud Storage + bucket locations. Only one location can be specified. Fields: locations: When the policy is SPECIFIC_LOCATIONS, snapshots will be stored - in the locations listed in this field. Keys are GCS bucket locations. + in the locations listed in this field. Keys are Cloud Storage bucket + locations. Only one location can be specified. policy: The chosen location policy. """ @@ -69023,9 +69038,9 @@ class PolicyValueValuesEnum(_messages.Enum): Values: LOCAL_REGION: Store snapshot in the same region as with the originating disk. No additional parameters are needed. - NEAREST_MULTI_REGION: Store snapshot to the nearest multi region GCS - bucket, relative to the originating disk. No additional parameters are - needed. + NEAREST_MULTI_REGION: Store snapshot in the nearest multi region Cloud + Storage bucket, relative to the originating disk. No additional + parameters are needed. SPECIFIC_LOCATIONS: Store snapshot in the specific locations, as specified by the user. The list of regions to store must be defined under the `locations` field. @@ -69039,7 +69054,8 @@ class PolicyValueValuesEnum(_messages.Enum): @encoding.MapUnrecognizedFields('additionalProperties') class LocationsValue(_messages.Message): r"""When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the - locations listed in this field. Keys are GCS bucket locations. + locations listed in this field. Keys are Cloud Storage bucket locations. + Only one location can be specified. Messages: AdditionalProperty: An additional property for a LocationsValue object. @@ -69071,7 +69087,8 @@ class SnapshotSettingsStorageLocationSettingsStorageLocationPreference(_messages r"""A structure for specifying storage locations. Fields: - name: Name of the location. It should be one of the GCS buckets. + name: Name of the location. It should be one of the Cloud Storage buckets. + Only one location can be specified. """ name = _messages.StringField(1) diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/config/v1/config_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/config/v1/config_v1_messages.py index 2b1242e27d..23e3b38d03 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/config/v1/config_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/config/v1/config_v1_messages.py @@ -2536,3 +2536,5 @@ class UnlockDeploymentRequest(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ConfigProjectsLocationsDeploymentsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/config/v1alpha2/config_v1alpha2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/config/v1alpha2/config_v1alpha2_messages.py index 2095f723a0..6fae4ec832 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/config/v1alpha2/config_v1alpha2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/config/v1alpha2/config_v1alpha2_messages.py @@ -2536,3 +2536,5 @@ class UnlockDeploymentRequest(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ConfigProjectsLocationsDeploymentsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/configdelivery/v1alpha/configdelivery_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/configdelivery/v1alpha/configdelivery_v1alpha_messages.py index 556ce4853e..0f9d0bd329 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/configdelivery/v1alpha/configdelivery_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/configdelivery/v1alpha/configdelivery_v1alpha_messages.py @@ -1340,18 +1340,29 @@ class ResourceBundleSelector(_messages.Message): Fields: cloudBuildRepository: cloud_build_repository points to a gen 2 cloud build repository to use as the source of truth for KRM configs. - resourceBundle: Required. resource_bundle refers to a resource bundle that - is directly pushed by the user. Format: - projects/{p}/locations/{l}/resourceBundles/{pkg} + resourceBundle: resource_bundle refers to a resource bundle that will + contain configuration. + """ + + cloudBuildRepository = _messages.MessageField('CloudBuildRepository', 1) + resourceBundle = _messages.MessageField('ResourceBundleTag', 2) + + +class ResourceBundleTag(_messages.Message): + r"""ResourceBundleTag refers to a resource bundle resource and a tag that + will identify one of the release resources under the ResourceBundle. + + Fields: + name: Required. Name of the ResourceBundle. Format is + projects/{p}/locations/{l}/resourceBundles/{r}. tag: Required. tag will support both the exact version as well as explicit tag. System will auto-generate tags which are useful such as tracking patch versions to support the concept of release channels. examples: v1.0.1 or v1.1.* or v1-stable """ - cloudBuildRepository = _messages.MessageField('CloudBuildRepository', 1) - resourceBundle = _messages.StringField(2) - tag = _messages.StringField(3) + name = _messages.StringField(1) + tag = _messages.StringField(2) class ResumeRolloutRequest(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/connectors/v1/connectors_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/connectors/v1/connectors_v1_messages.py index d66440fd0d..a8a41b3694 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/connectors/v1/connectors_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/connectors/v1/connectors_v1_messages.py @@ -3944,3 +3944,7 @@ class UserPassword(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ConnectorsProjectsLocationsConnectionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ConnectorsProjectsLocationsProvidersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1/container_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1/container_v1_messages.py index a792d7ff02..abc05b8f2a 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1/container_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1/container_v1_messages.py @@ -907,6 +907,8 @@ class Cluster(_messages.Message): cluster. This field is used by Google internal products that are built on top of the GKE cluster and take the ownership of the cluster. privateClusterConfig: Configuration for private cluster. + rbacBindingConfig: RBACBindingConfig allows user to restrict + ClusterRoleBindings an RoleBindings that can be created. releaseChannel: Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first @@ -1064,24 +1066,25 @@ class AdditionalProperty(_messages.Message): notificationConfig = _messages.MessageField('NotificationConfig', 58) parentProductConfig = _messages.MessageField('ParentProductConfig', 59) privateClusterConfig = _messages.MessageField('PrivateClusterConfig', 60) - releaseChannel = _messages.MessageField('ReleaseChannel', 61) - resourceLabels = _messages.MessageField('ResourceLabelsValue', 62) - resourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 63) - runtimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 64) - satisfiesPzi = _messages.BooleanField(65) - satisfiesPzs = _messages.BooleanField(66) - secretManagerConfig = _messages.MessageField('SecretManagerConfig', 67) - securityPostureConfig = _messages.MessageField('SecurityPostureConfig', 68) - selfLink = _messages.StringField(69) - servicesIpv4Cidr = _messages.StringField(70) - shieldedNodes = _messages.MessageField('ShieldedNodes', 71) - status = _messages.EnumField('StatusValueValuesEnum', 72) - statusMessage = _messages.StringField(73) - subnetwork = _messages.StringField(74) - tpuIpv4CidrBlock = _messages.StringField(75) - verticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 76) - workloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 77) - zone = _messages.StringField(78) + rbacBindingConfig = _messages.MessageField('RBACBindingConfig', 61) + releaseChannel = _messages.MessageField('ReleaseChannel', 62) + resourceLabels = _messages.MessageField('ResourceLabelsValue', 63) + resourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 64) + runtimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 65) + satisfiesPzi = _messages.BooleanField(66) + satisfiesPzs = _messages.BooleanField(67) + secretManagerConfig = _messages.MessageField('SecretManagerConfig', 68) + securityPostureConfig = _messages.MessageField('SecurityPostureConfig', 69) + selfLink = _messages.StringField(70) + servicesIpv4Cidr = _messages.StringField(71) + shieldedNodes = _messages.MessageField('ShieldedNodes', 72) + status = _messages.EnumField('StatusValueValuesEnum', 73) + statusMessage = _messages.StringField(74) + subnetwork = _messages.StringField(75) + tpuIpv4CidrBlock = _messages.StringField(76) + verticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 77) + workloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 78) + zone = _messages.StringField(79) class ClusterAutoscaling(_messages.Message): @@ -1302,6 +1305,8 @@ class ClusterUpdate(_messages.Message): modifying other fields within PrivateClusterConfig. desiredPrivateIpv6GoogleAccess: The desired state of IPv6 connectivity to Google Services. + desiredRbacBindingConfig: RBACBindingConfig allows user to restrict + ClusterRoleBindings an RoleBindings that can be created. desiredReleaseChannel: The desired release channel configuration. desiredResourceUsageExportConfig: The desired configuration for exporting resource usage. @@ -1451,19 +1456,20 @@ class DesiredStackTypeValueValuesEnum(_messages.Enum): desiredParentProductConfig = _messages.MessageField('ParentProductConfig', 54) desiredPrivateClusterConfig = _messages.MessageField('PrivateClusterConfig', 55) desiredPrivateIpv6GoogleAccess = _messages.EnumField('DesiredPrivateIpv6GoogleAccessValueValuesEnum', 56) - desiredReleaseChannel = _messages.MessageField('ReleaseChannel', 57) - desiredResourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 58) - desiredRuntimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 59) - desiredSecretManagerConfig = _messages.MessageField('SecretManagerConfig', 60) - desiredSecurityPostureConfig = _messages.MessageField('SecurityPostureConfig', 61) - desiredServiceExternalIpsConfig = _messages.MessageField('ServiceExternalIPsConfig', 62) - desiredShieldedNodes = _messages.MessageField('ShieldedNodes', 63) - desiredStackType = _messages.EnumField('DesiredStackTypeValueValuesEnum', 64) - desiredVerticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 65) - desiredWorkloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 66) - enableK8sBetaApis = _messages.MessageField('K8sBetaAPIConfig', 67) - etag = _messages.StringField(68) - removedAdditionalPodRangesConfig = _messages.MessageField('AdditionalPodRangesConfig', 69) + desiredRbacBindingConfig = _messages.MessageField('RBACBindingConfig', 57) + desiredReleaseChannel = _messages.MessageField('ReleaseChannel', 58) + desiredResourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 59) + desiredRuntimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 60) + desiredSecretManagerConfig = _messages.MessageField('SecretManagerConfig', 61) + desiredSecurityPostureConfig = _messages.MessageField('SecurityPostureConfig', 62) + desiredServiceExternalIpsConfig = _messages.MessageField('ServiceExternalIPsConfig', 63) + desiredShieldedNodes = _messages.MessageField('ShieldedNodes', 64) + desiredStackType = _messages.EnumField('DesiredStackTypeValueValuesEnum', 65) + desiredVerticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 66) + desiredWorkloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 67) + enableK8sBetaApis = _messages.MessageField('K8sBetaAPIConfig', 68) + etag = _messages.StringField(69) + removedAdditionalPodRangesConfig = _messages.MessageField('AdditionalPodRangesConfig', 70) class CompleteConvertToAutopilotRequest(_messages.Message): @@ -5068,6 +5074,23 @@ class QueuedProvisioning(_messages.Message): enabled = _messages.BooleanField(1) +class RBACBindingConfig(_messages.Message): + r"""RBACBindingConfig allows user to restrict ClusterRoleBindings an + RoleBindings that can be created. + + Fields: + enableInsecureBindingSystemAuthenticated: Setting this to true will allow + any ClusterRoleBinding and RoleBinding with subjects + system:authenticated. + enableInsecureBindingSystemUnauthenticated: Setting this to true will + allow any ClusterRoleBinding and RoleBinding with subjets + system:anonymous or system:unauthenticated. + """ + + enableInsecureBindingSystemAuthenticated = _messages.BooleanField(1) + enableInsecureBindingSystemUnauthenticated = _messages.BooleanField(2) + + class RangeInfo(_messages.Message): r"""RangeInfo contains the range name and the range utilization by this cluster. diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1alpha1/container_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1alpha1/container_v1alpha1_messages.py index ed398d54be..365fc12232 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1alpha1/container_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1alpha1/container_v1alpha1_messages.py @@ -1024,6 +1024,8 @@ class Cluster(_messages.Message): privateClusterConfig: Configuration for private cluster. protectConfig: Deprecated: Use SecurityPostureConfig instead. Enable/Disable Protect API features for the cluster. + rbacBindingConfig: RBACBindingConfig allows user to restrict + ClusterRoleBindings an RoleBindings that can be created. releaseChannel: Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first @@ -1220,31 +1222,32 @@ class AdditionalProperty(_messages.Message): privateCluster = _messages.BooleanField(71) privateClusterConfig = _messages.MessageField('PrivateClusterConfig', 72) protectConfig = _messages.MessageField('ProtectConfig', 73) - releaseChannel = _messages.MessageField('ReleaseChannel', 74) - resourceLabels = _messages.MessageField('ResourceLabelsValue', 75) - resourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 76) - resourceVersion = _messages.StringField(77) - runtimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 78) - satisfiesPzi = _messages.BooleanField(79) - satisfiesPzs = _messages.BooleanField(80) - secretManagerConfig = _messages.MessageField('SecretManagerConfig', 81) - securityPostureConfig = _messages.MessageField('SecurityPostureConfig', 82) - securityProfile = _messages.MessageField('SecurityProfile', 83) - selfLink = _messages.StringField(84) - servicesIpv4Cidr = _messages.StringField(85) - shieldedNodes = _messages.MessageField('ShieldedNodes', 86) - status = _messages.EnumField('StatusValueValuesEnum', 87) - statusMessage = _messages.StringField(88) - subnetwork = _messages.StringField(89) - tpuConfig = _messages.MessageField('TpuConfig', 90) - tpuIpv4CidrBlock = _messages.StringField(91) - verticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 92) - workloadAltsConfig = _messages.MessageField('WorkloadALTSConfig', 93) - workloadCertificates = _messages.MessageField('WorkloadCertificates', 94) - workloadConfig = _messages.MessageField('WorkloadConfig', 95) - workloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 96) - workloadMonitoringEnabledEap = _messages.BooleanField(97) - zone = _messages.StringField(98) + rbacBindingConfig = _messages.MessageField('RBACBindingConfig', 74) + releaseChannel = _messages.MessageField('ReleaseChannel', 75) + resourceLabels = _messages.MessageField('ResourceLabelsValue', 76) + resourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 77) + resourceVersion = _messages.StringField(78) + runtimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 79) + satisfiesPzi = _messages.BooleanField(80) + satisfiesPzs = _messages.BooleanField(81) + secretManagerConfig = _messages.MessageField('SecretManagerConfig', 82) + securityPostureConfig = _messages.MessageField('SecurityPostureConfig', 83) + securityProfile = _messages.MessageField('SecurityProfile', 84) + selfLink = _messages.StringField(85) + servicesIpv4Cidr = _messages.StringField(86) + shieldedNodes = _messages.MessageField('ShieldedNodes', 87) + status = _messages.EnumField('StatusValueValuesEnum', 88) + statusMessage = _messages.StringField(89) + subnetwork = _messages.StringField(90) + tpuConfig = _messages.MessageField('TpuConfig', 91) + tpuIpv4CidrBlock = _messages.StringField(92) + verticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 93) + workloadAltsConfig = _messages.MessageField('WorkloadALTSConfig', 94) + workloadCertificates = _messages.MessageField('WorkloadCertificates', 95) + workloadConfig = _messages.MessageField('WorkloadConfig', 96) + workloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 97) + workloadMonitoringEnabledEap = _messages.BooleanField(98) + zone = _messages.StringField(99) class ClusterAutoscaling(_messages.Message): @@ -1521,6 +1524,8 @@ class ClusterUpdate(_messages.Message): Google Services. desiredProtectConfig: Deprecated: Use DesiredSecurityPostureConfig instead. Enable/Disable Protect API features for the cluster. + desiredRbacBindingConfig: RBACBindingConfig allows user to restrict + ClusterRoleBindings an RoleBindings that can be created. desiredReleaseChannel: The desired release channel configuration. desiredResourceUsageExportConfig: The desired configuration for exporting resource usage. @@ -1697,27 +1702,28 @@ class DesiredStackTypeValueValuesEnum(_messages.Enum): desiredPrivateIpv6Access = _messages.MessageField('PrivateIPv6Status', 68) desiredPrivateIpv6GoogleAccess = _messages.EnumField('DesiredPrivateIpv6GoogleAccessValueValuesEnum', 69) desiredProtectConfig = _messages.MessageField('ProtectConfig', 70) - desiredReleaseChannel = _messages.MessageField('ReleaseChannel', 71) - desiredResourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 72) - desiredRuntimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 73) - desiredSecretManagerConfig = _messages.MessageField('SecretManagerConfig', 74) - desiredSecurityPostureConfig = _messages.MessageField('SecurityPostureConfig', 75) - desiredServiceExternalIpsConfig = _messages.MessageField('ServiceExternalIPsConfig', 76) - desiredShieldedNodes = _messages.MessageField('ShieldedNodes', 77) - desiredStableFleetConfig = _messages.MessageField('StableFleetConfig', 78) - desiredStackType = _messages.EnumField('DesiredStackTypeValueValuesEnum', 79) - desiredTpuConfig = _messages.MessageField('TpuConfig', 80) - desiredVerticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 81) - desiredWorkloadAltsConfig = _messages.MessageField('WorkloadALTSConfig', 82) - desiredWorkloadCertificates = _messages.MessageField('WorkloadCertificates', 83) - desiredWorkloadConfig = _messages.MessageField('WorkloadConfig', 84) - desiredWorkloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 85) - desiredWorkloadMonitoringEapConfig = _messages.MessageField('WorkloadMonitoringEapConfig', 86) - enableK8sBetaApis = _messages.MessageField('K8sBetaAPIConfig', 87) - etag = _messages.StringField(88) - privateClusterConfig = _messages.MessageField('PrivateClusterConfig', 89) - removedAdditionalPodRangesConfig = _messages.MessageField('AdditionalPodRangesConfig', 90) - securityProfile = _messages.MessageField('SecurityProfile', 91) + desiredRbacBindingConfig = _messages.MessageField('RBACBindingConfig', 71) + desiredReleaseChannel = _messages.MessageField('ReleaseChannel', 72) + desiredResourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 73) + desiredRuntimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 74) + desiredSecretManagerConfig = _messages.MessageField('SecretManagerConfig', 75) + desiredSecurityPostureConfig = _messages.MessageField('SecurityPostureConfig', 76) + desiredServiceExternalIpsConfig = _messages.MessageField('ServiceExternalIPsConfig', 77) + desiredShieldedNodes = _messages.MessageField('ShieldedNodes', 78) + desiredStableFleetConfig = _messages.MessageField('StableFleetConfig', 79) + desiredStackType = _messages.EnumField('DesiredStackTypeValueValuesEnum', 80) + desiredTpuConfig = _messages.MessageField('TpuConfig', 81) + desiredVerticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 82) + desiredWorkloadAltsConfig = _messages.MessageField('WorkloadALTSConfig', 83) + desiredWorkloadCertificates = _messages.MessageField('WorkloadCertificates', 84) + desiredWorkloadConfig = _messages.MessageField('WorkloadConfig', 85) + desiredWorkloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 86) + desiredWorkloadMonitoringEapConfig = _messages.MessageField('WorkloadMonitoringEapConfig', 87) + enableK8sBetaApis = _messages.MessageField('K8sBetaAPIConfig', 88) + etag = _messages.StringField(89) + privateClusterConfig = _messages.MessageField('PrivateClusterConfig', 90) + removedAdditionalPodRangesConfig = _messages.MessageField('AdditionalPodRangesConfig', 91) + securityProfile = _messages.MessageField('SecurityProfile', 92) class CompleteConvertToAutopilotRequest(_messages.Message): @@ -5875,6 +5881,23 @@ class QueuedProvisioning(_messages.Message): enabled = _messages.BooleanField(1) +class RBACBindingConfig(_messages.Message): + r"""RBACBindingConfig allows user to restrict ClusterRoleBindings an + RoleBindings that can be created. + + Fields: + enableInsecureBindingSystemAuthenticated: Setting this to true will allow + any ClusterRoleBinding and RoleBinding with subjects + system:authenticated. + enableInsecureBindingSystemUnauthenticated: Setting this to true will + allow any ClusterRoleBinding and RoleBinding with subjets + system:anonymous or system:unauthenticated. + """ + + enableInsecureBindingSystemAuthenticated = _messages.BooleanField(1) + enableInsecureBindingSystemUnauthenticated = _messages.BooleanField(2) + + class RangeInfo(_messages.Message): r"""RangeInfo contains the range name and the range utilization by this cluster. diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1beta1/container_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1beta1/container_v1beta1_messages.py index b823a3e1f5..10a716e4df 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1beta1/container_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/container/v1beta1/container_v1beta1_messages.py @@ -990,6 +990,8 @@ class Cluster(_messages.Message): privateClusterConfig: Configuration for private cluster. protectConfig: Deprecated: Use SecurityPostureConfig instead. Enable/Disable Protect API features for the cluster. + rbacBindingConfig: RBACBindingConfig allows user to restrict + ClusterRoleBindings an RoleBindings that can be created. releaseChannel: Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first @@ -1167,29 +1169,30 @@ class AdditionalProperty(_messages.Message): privateCluster = _messages.BooleanField(69) privateClusterConfig = _messages.MessageField('PrivateClusterConfig', 70) protectConfig = _messages.MessageField('ProtectConfig', 71) - releaseChannel = _messages.MessageField('ReleaseChannel', 72) - resourceLabels = _messages.MessageField('ResourceLabelsValue', 73) - resourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 74) - runtimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 75) - satisfiesPzi = _messages.BooleanField(76) - satisfiesPzs = _messages.BooleanField(77) - secretManagerConfig = _messages.MessageField('SecretManagerConfig', 78) - securityPostureConfig = _messages.MessageField('SecurityPostureConfig', 79) - selfLink = _messages.StringField(80) - servicesIpv4Cidr = _messages.StringField(81) - shieldedNodes = _messages.MessageField('ShieldedNodes', 82) - status = _messages.EnumField('StatusValueValuesEnum', 83) - statusMessage = _messages.StringField(84) - subnetwork = _messages.StringField(85) - tpuConfig = _messages.MessageField('TpuConfig', 86) - tpuIpv4CidrBlock = _messages.StringField(87) - verticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 88) - workloadAltsConfig = _messages.MessageField('WorkloadALTSConfig', 89) - workloadCertificates = _messages.MessageField('WorkloadCertificates', 90) - workloadConfig = _messages.MessageField('WorkloadConfig', 91) - workloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 92) - workloadMonitoringEnabledEap = _messages.BooleanField(93) - zone = _messages.StringField(94) + rbacBindingConfig = _messages.MessageField('RBACBindingConfig', 72) + releaseChannel = _messages.MessageField('ReleaseChannel', 73) + resourceLabels = _messages.MessageField('ResourceLabelsValue', 74) + resourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 75) + runtimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 76) + satisfiesPzi = _messages.BooleanField(77) + satisfiesPzs = _messages.BooleanField(78) + secretManagerConfig = _messages.MessageField('SecretManagerConfig', 79) + securityPostureConfig = _messages.MessageField('SecurityPostureConfig', 80) + selfLink = _messages.StringField(81) + servicesIpv4Cidr = _messages.StringField(82) + shieldedNodes = _messages.MessageField('ShieldedNodes', 83) + status = _messages.EnumField('StatusValueValuesEnum', 84) + statusMessage = _messages.StringField(85) + subnetwork = _messages.StringField(86) + tpuConfig = _messages.MessageField('TpuConfig', 87) + tpuIpv4CidrBlock = _messages.StringField(88) + verticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 89) + workloadAltsConfig = _messages.MessageField('WorkloadALTSConfig', 90) + workloadCertificates = _messages.MessageField('WorkloadCertificates', 91) + workloadConfig = _messages.MessageField('WorkloadConfig', 92) + workloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 93) + workloadMonitoringEnabledEap = _messages.BooleanField(94) + zone = _messages.StringField(95) class ClusterAutoscaling(_messages.Message): @@ -1455,6 +1458,8 @@ class ClusterUpdate(_messages.Message): Google Services. desiredProtectConfig: Deprecated: Use DesiredSecurityPostureConfig instead. Enable/Disable Protect API features for the cluster. + desiredRbacBindingConfig: RBACBindingConfig allows user to restrict + ClusterRoleBindings an RoleBindings that can be created. desiredReleaseChannel: The desired release channel configuration. desiredResourceUsageExportConfig: The desired configuration for exporting resource usage. @@ -1630,26 +1635,27 @@ class DesiredStackTypeValueValuesEnum(_messages.Enum): desiredPrivateClusterConfig = _messages.MessageField('PrivateClusterConfig', 65) desiredPrivateIpv6GoogleAccess = _messages.EnumField('DesiredPrivateIpv6GoogleAccessValueValuesEnum', 66) desiredProtectConfig = _messages.MessageField('ProtectConfig', 67) - desiredReleaseChannel = _messages.MessageField('ReleaseChannel', 68) - desiredResourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 69) - desiredRuntimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 70) - desiredSecretManagerConfig = _messages.MessageField('SecretManagerConfig', 71) - desiredSecurityPostureConfig = _messages.MessageField('SecurityPostureConfig', 72) - desiredServiceExternalIpsConfig = _messages.MessageField('ServiceExternalIPsConfig', 73) - desiredShieldedNodes = _messages.MessageField('ShieldedNodes', 74) - desiredStableFleetConfig = _messages.MessageField('StableFleetConfig', 75) - desiredStackType = _messages.EnumField('DesiredStackTypeValueValuesEnum', 76) - desiredTpuConfig = _messages.MessageField('TpuConfig', 77) - desiredVerticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 78) - desiredWorkloadAltsConfig = _messages.MessageField('WorkloadALTSConfig', 79) - desiredWorkloadCertificates = _messages.MessageField('WorkloadCertificates', 80) - desiredWorkloadConfig = _messages.MessageField('WorkloadConfig', 81) - desiredWorkloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 82) - desiredWorkloadMonitoringEapConfig = _messages.MessageField('WorkloadMonitoringEapConfig', 83) - enableK8sBetaApis = _messages.MessageField('K8sBetaAPIConfig', 84) - etag = _messages.StringField(85) - privateClusterConfig = _messages.MessageField('PrivateClusterConfig', 86) - removedAdditionalPodRangesConfig = _messages.MessageField('AdditionalPodRangesConfig', 87) + desiredRbacBindingConfig = _messages.MessageField('RBACBindingConfig', 68) + desiredReleaseChannel = _messages.MessageField('ReleaseChannel', 69) + desiredResourceUsageExportConfig = _messages.MessageField('ResourceUsageExportConfig', 70) + desiredRuntimeVulnerabilityInsightConfig = _messages.MessageField('RuntimeVulnerabilityInsightConfig', 71) + desiredSecretManagerConfig = _messages.MessageField('SecretManagerConfig', 72) + desiredSecurityPostureConfig = _messages.MessageField('SecurityPostureConfig', 73) + desiredServiceExternalIpsConfig = _messages.MessageField('ServiceExternalIPsConfig', 74) + desiredShieldedNodes = _messages.MessageField('ShieldedNodes', 75) + desiredStableFleetConfig = _messages.MessageField('StableFleetConfig', 76) + desiredStackType = _messages.EnumField('DesiredStackTypeValueValuesEnum', 77) + desiredTpuConfig = _messages.MessageField('TpuConfig', 78) + desiredVerticalPodAutoscaling = _messages.MessageField('VerticalPodAutoscaling', 79) + desiredWorkloadAltsConfig = _messages.MessageField('WorkloadALTSConfig', 80) + desiredWorkloadCertificates = _messages.MessageField('WorkloadCertificates', 81) + desiredWorkloadConfig = _messages.MessageField('WorkloadConfig', 82) + desiredWorkloadIdentityConfig = _messages.MessageField('WorkloadIdentityConfig', 83) + desiredWorkloadMonitoringEapConfig = _messages.MessageField('WorkloadMonitoringEapConfig', 84) + enableK8sBetaApis = _messages.MessageField('K8sBetaAPIConfig', 85) + etag = _messages.StringField(86) + privateClusterConfig = _messages.MessageField('PrivateClusterConfig', 87) + removedAdditionalPodRangesConfig = _messages.MessageField('AdditionalPodRangesConfig', 88) class CompleteConvertToAutopilotRequest(_messages.Message): @@ -5727,6 +5733,23 @@ class QueuedProvisioning(_messages.Message): enabled = _messages.BooleanField(1) +class RBACBindingConfig(_messages.Message): + r"""RBACBindingConfig allows user to restrict ClusterRoleBindings an + RoleBindings that can be created. + + Fields: + enableInsecureBindingSystemAuthenticated: Setting this to true will allow + any ClusterRoleBinding and RoleBinding with subjects + system:authenticated. + enableInsecureBindingSystemUnauthenticated: Setting this to true will + allow any ClusterRoleBinding and RoleBinding with subjets + system:anonymous or system:unauthenticated. + """ + + enableInsecureBindingSystemAuthenticated = _messages.BooleanField(1) + enableInsecureBindingSystemUnauthenticated = _messages.BooleanField(2) + + class RangeInfo(_messages.Message): r"""RangeInfo contains the range name and the range utilization by this cluster. diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1/containeranalysis_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1/containeranalysis_v1_messages.py index 81e0318d6a..dc6368955b 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1/containeranalysis_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1/containeranalysis_v1_messages.py @@ -1165,10 +1165,12 @@ class ComplianceOccurrence(_messages.Message): Fields: nonComplianceReason: A string attribute. nonCompliantFiles: A NonCompliantFile attribute. + version: The OS and config version the benchmark was run on. """ nonComplianceReason = _messages.StringField(1) nonCompliantFiles = _messages.MessageField('NonCompliantFile', 2, repeated=True) + version = _messages.MessageField('ComplianceVersion', 3) class ComplianceVersion(_messages.Message): @@ -1405,6 +1407,7 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build(_messages.Message): finishTime: Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. + gitConfig: Optional. Configuration for git operations. id: Output only. Unique identifier of the build. images: A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service @@ -1546,28 +1549,29 @@ class AdditionalProperty(_messages.Message): createTime = _messages.StringField(5) failureInfo = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo', 6) finishTime = _messages.StringField(7) - id = _messages.StringField(8) - images = _messages.StringField(9, repeated=True) - logUrl = _messages.StringField(10) - logsBucket = _messages.StringField(11) - name = _messages.StringField(12) - options = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions', 13) - projectId = _messages.StringField(14) - queueTtl = _messages.StringField(15) - results = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Results', 16) - secrets = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Secret', 17, repeated=True) - serviceAccount = _messages.StringField(18) - source = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Source', 19) - sourceProvenance = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance', 20) - startTime = _messages.StringField(21) - status = _messages.EnumField('StatusValueValuesEnum', 22) - statusDetail = _messages.StringField(23) - steps = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep', 24, repeated=True) - substitutions = _messages.MessageField('SubstitutionsValue', 25) - tags = _messages.StringField(26, repeated=True) - timeout = _messages.StringField(27) - timing = _messages.MessageField('TimingValue', 28) - warnings = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning', 29, repeated=True) + gitConfig = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfig', 8) + id = _messages.StringField(9) + images = _messages.StringField(10, repeated=True) + logUrl = _messages.StringField(11) + logsBucket = _messages.StringField(12) + name = _messages.StringField(13) + options = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions', 14) + projectId = _messages.StringField(15) + queueTtl = _messages.StringField(16) + results = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Results', 17) + secrets = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Secret', 18, repeated=True) + serviceAccount = _messages.StringField(19) + source = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Source', 20) + sourceProvenance = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance', 21) + startTime = _messages.StringField(22) + status = _messages.EnumField('StatusValueValuesEnum', 23) + statusDetail = _messages.StringField(24) + steps = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep', 25, repeated=True) + substitutions = _messages.MessageField('SubstitutionsValue', 26) + tags = _messages.StringField(27, repeated=True) + timeout = _messages.StringField(28) + timing = _messages.MessageField('TimingValue', 29) + warnings = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning', 30, repeated=True) class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval(_messages.Message): @@ -2038,6 +2042,23 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository(_messages.M revision = _messages.StringField(3) +class ContaineranalysisGoogleDevtoolsCloudbuildV1DeveloperConnectConfig(_messages.Message): + r"""This config defines the location of a source through Developer Connect. + + Fields: + dir: Required. Directory, relative to the source root, in which to run the + build. + gitRepositoryLink: Required. The Developer Connect Git repository link, + formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`. + revision: Required. The revision to fetch from the Git repository such as + a branch, a tag, a commit SHA, or any Git ref. + """ + + dir = _messages.StringField(1) + gitRepositoryLink = _messages.StringField(2) + revision = _messages.StringField(3) + + class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes(_messages.Message): r"""Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build. @@ -2049,6 +2070,27 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes(_messages.Message): fileHash = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Hash', 1, repeated=True) +class ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfig(_messages.Message): + r"""GitConfig is a configuration for git operations. + + Fields: + http: Configuration for HTTP related git operations. + """ + + http = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfigHttpConfig', 1) + + +class ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfigHttpConfig(_messages.Message): + r"""HttpConfig is a configuration for HTTP related git operations. + + Fields: + proxySecretVersionName: SecretVersion resource of the HTTP proxy URL. The + proxy URL should be in format protocol://@]proxyhost[:port]. + """ + + proxySecretVersionName = _messages.StringField(1) + + class ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource(_messages.Message): r"""Location of the source in any accessible Git repository. @@ -2345,6 +2387,8 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source(_messages.Message): Fields: connectedRepository: Optional. If provided, get the source from this 2nd- gen Google Cloud Build repository resource. + developerConnectConfig: If provided, get the source from this Developer + Connect config. gitSource: If provided, get the source from this Git repository. repoSource: If provided, get the source from this location in a Cloud Source Repository. @@ -2357,10 +2401,11 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source(_messages.Message): """ connectedRepository = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository', 1) - gitSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource', 2) - repoSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource', 3) - storageSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource', 4) - storageSourceManifest = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest', 5) + developerConnectConfig = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1DeveloperConnectConfig', 2) + gitSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource', 3) + repoSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource', 4) + storageSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource', 5) + storageSourceManifest = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest', 6) class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1alpha1/containeranalysis_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1alpha1/containeranalysis_v1alpha1_messages.py index d9a759520f..5bc3a57b89 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1alpha1/containeranalysis_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1alpha1/containeranalysis_v1alpha1_messages.py @@ -1198,6 +1198,7 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build(_messages.Message): finishTime: Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. + gitConfig: Optional. Configuration for git operations. id: Output only. Unique identifier of the build. images: A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service @@ -1339,28 +1340,29 @@ class AdditionalProperty(_messages.Message): createTime = _messages.StringField(5) failureInfo = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo', 6) finishTime = _messages.StringField(7) - id = _messages.StringField(8) - images = _messages.StringField(9, repeated=True) - logUrl = _messages.StringField(10) - logsBucket = _messages.StringField(11) - name = _messages.StringField(12) - options = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions', 13) - projectId = _messages.StringField(14) - queueTtl = _messages.StringField(15) - results = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Results', 16) - secrets = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Secret', 17, repeated=True) - serviceAccount = _messages.StringField(18) - source = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Source', 19) - sourceProvenance = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance', 20) - startTime = _messages.StringField(21) - status = _messages.EnumField('StatusValueValuesEnum', 22) - statusDetail = _messages.StringField(23) - steps = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep', 24, repeated=True) - substitutions = _messages.MessageField('SubstitutionsValue', 25) - tags = _messages.StringField(26, repeated=True) - timeout = _messages.StringField(27) - timing = _messages.MessageField('TimingValue', 28) - warnings = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning', 29, repeated=True) + gitConfig = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfig', 8) + id = _messages.StringField(9) + images = _messages.StringField(10, repeated=True) + logUrl = _messages.StringField(11) + logsBucket = _messages.StringField(12) + name = _messages.StringField(13) + options = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions', 14) + projectId = _messages.StringField(15) + queueTtl = _messages.StringField(16) + results = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Results', 17) + secrets = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Secret', 18, repeated=True) + serviceAccount = _messages.StringField(19) + source = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Source', 20) + sourceProvenance = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance', 21) + startTime = _messages.StringField(22) + status = _messages.EnumField('StatusValueValuesEnum', 23) + statusDetail = _messages.StringField(24) + steps = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep', 25, repeated=True) + substitutions = _messages.MessageField('SubstitutionsValue', 26) + tags = _messages.StringField(27, repeated=True) + timeout = _messages.StringField(28) + timing = _messages.MessageField('TimingValue', 29) + warnings = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning', 30, repeated=True) class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval(_messages.Message): @@ -1831,6 +1833,23 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository(_messages.M revision = _messages.StringField(3) +class ContaineranalysisGoogleDevtoolsCloudbuildV1DeveloperConnectConfig(_messages.Message): + r"""This config defines the location of a source through Developer Connect. + + Fields: + dir: Required. Directory, relative to the source root, in which to run the + build. + gitRepositoryLink: Required. The Developer Connect Git repository link, + formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`. + revision: Required. The revision to fetch from the Git repository such as + a branch, a tag, a commit SHA, or any Git ref. + """ + + dir = _messages.StringField(1) + gitRepositoryLink = _messages.StringField(2) + revision = _messages.StringField(3) + + class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes(_messages.Message): r"""Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build. @@ -1842,6 +1861,27 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes(_messages.Message): fileHash = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Hash', 1, repeated=True) +class ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfig(_messages.Message): + r"""GitConfig is a configuration for git operations. + + Fields: + http: Configuration for HTTP related git operations. + """ + + http = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfigHttpConfig', 1) + + +class ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfigHttpConfig(_messages.Message): + r"""HttpConfig is a configuration for HTTP related git operations. + + Fields: + proxySecretVersionName: SecretVersion resource of the HTTP proxy URL. The + proxy URL should be in format protocol://@]proxyhost[:port]. + """ + + proxySecretVersionName = _messages.StringField(1) + + class ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource(_messages.Message): r"""Location of the source in any accessible Git repository. @@ -2138,6 +2178,8 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source(_messages.Message): Fields: connectedRepository: Optional. If provided, get the source from this 2nd- gen Google Cloud Build repository resource. + developerConnectConfig: If provided, get the source from this Developer + Connect config. gitSource: If provided, get the source from this Git repository. repoSource: If provided, get the source from this location in a Cloud Source Repository. @@ -2150,10 +2192,11 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source(_messages.Message): """ connectedRepository = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository', 1) - gitSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource', 2) - repoSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource', 3) - storageSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource', 4) - storageSourceManifest = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest', 5) + developerConnectConfig = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1DeveloperConnectConfig', 2) + gitSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource', 3) + repoSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource', 4) + storageSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource', 5) + storageSourceManifest = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest', 6) class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1beta1/containeranalysis_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1beta1/containeranalysis_v1beta1_messages.py index 46a7b33a38..74616594d2 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1beta1/containeranalysis_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/containeranalysis/v1beta1/containeranalysis_v1beta1_messages.py @@ -1351,6 +1351,7 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1Build(_messages.Message): finishTime: Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution. + gitConfig: Optional. Configuration for git operations. id: Output only. Unique identifier of the build. images: A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service @@ -1492,28 +1493,29 @@ class AdditionalProperty(_messages.Message): createTime = _messages.StringField(5) failureInfo = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildFailureInfo', 6) finishTime = _messages.StringField(7) - id = _messages.StringField(8) - images = _messages.StringField(9, repeated=True) - logUrl = _messages.StringField(10) - logsBucket = _messages.StringField(11) - name = _messages.StringField(12) - options = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions', 13) - projectId = _messages.StringField(14) - queueTtl = _messages.StringField(15) - results = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Results', 16) - secrets = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Secret', 17, repeated=True) - serviceAccount = _messages.StringField(18) - source = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Source', 19) - sourceProvenance = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance', 20) - startTime = _messages.StringField(21) - status = _messages.EnumField('StatusValueValuesEnum', 22) - statusDetail = _messages.StringField(23) - steps = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep', 24, repeated=True) - substitutions = _messages.MessageField('SubstitutionsValue', 25) - tags = _messages.StringField(26, repeated=True) - timeout = _messages.StringField(27) - timing = _messages.MessageField('TimingValue', 28) - warnings = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning', 29, repeated=True) + gitConfig = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfig', 8) + id = _messages.StringField(9) + images = _messages.StringField(10, repeated=True) + logUrl = _messages.StringField(11) + logsBucket = _messages.StringField(12) + name = _messages.StringField(13) + options = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildOptions', 14) + projectId = _messages.StringField(15) + queueTtl = _messages.StringField(16) + results = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Results', 17) + secrets = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Secret', 18, repeated=True) + serviceAccount = _messages.StringField(19) + source = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Source', 20) + sourceProvenance = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance', 21) + startTime = _messages.StringField(22) + status = _messages.EnumField('StatusValueValuesEnum', 23) + statusDetail = _messages.StringField(24) + steps = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildStep', 25, repeated=True) + substitutions = _messages.MessageField('SubstitutionsValue', 26) + tags = _messages.StringField(27, repeated=True) + timeout = _messages.StringField(28) + timing = _messages.MessageField('TimingValue', 29) + warnings = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1BuildWarning', 30, repeated=True) class ContaineranalysisGoogleDevtoolsCloudbuildV1BuildApproval(_messages.Message): @@ -1984,6 +1986,23 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository(_messages.M revision = _messages.StringField(3) +class ContaineranalysisGoogleDevtoolsCloudbuildV1DeveloperConnectConfig(_messages.Message): + r"""This config defines the location of a source through Developer Connect. + + Fields: + dir: Required. Directory, relative to the source root, in which to run the + build. + gitRepositoryLink: Required. The Developer Connect Git repository link, + formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`. + revision: Required. The revision to fetch from the Git repository such as + a branch, a tag, a commit SHA, or any Git ref. + """ + + dir = _messages.StringField(1) + gitRepositoryLink = _messages.StringField(2) + revision = _messages.StringField(3) + + class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes(_messages.Message): r"""Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build. @@ -1995,6 +2014,27 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1FileHashes(_messages.Message): fileHash = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1Hash', 1, repeated=True) +class ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfig(_messages.Message): + r"""GitConfig is a configuration for git operations. + + Fields: + http: Configuration for HTTP related git operations. + """ + + http = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfigHttpConfig', 1) + + +class ContaineranalysisGoogleDevtoolsCloudbuildV1GitConfigHttpConfig(_messages.Message): + r"""HttpConfig is a configuration for HTTP related git operations. + + Fields: + proxySecretVersionName: SecretVersion resource of the HTTP proxy URL. The + proxy URL should be in format protocol://@]proxyhost[:port]. + """ + + proxySecretVersionName = _messages.StringField(1) + + class ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource(_messages.Message): r"""Location of the source in any accessible Git repository. @@ -2291,6 +2331,8 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source(_messages.Message): Fields: connectedRepository: Optional. If provided, get the source from this 2nd- gen Google Cloud Build repository resource. + developerConnectConfig: If provided, get the source from this Developer + Connect config. gitSource: If provided, get the source from this Git repository. repoSource: If provided, get the source from this location in a Cloud Source Repository. @@ -2303,10 +2345,11 @@ class ContaineranalysisGoogleDevtoolsCloudbuildV1Source(_messages.Message): """ connectedRepository = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1ConnectedRepository', 1) - gitSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource', 2) - repoSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource', 3) - storageSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource', 4) - storageSourceManifest = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest', 5) + developerConnectConfig = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1DeveloperConnectConfig', 2) + gitSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1GitSource', 3) + repoSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1RepoSource', 4) + storageSource = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSource', 5) + storageSourceManifest = _messages.MessageField('ContaineranalysisGoogleDevtoolsCloudbuildV1StorageSourceManifest', 6) class ContaineranalysisGoogleDevtoolsCloudbuildV1SourceProvenance(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dataflow/v1b3/dataflow_v1b3_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dataflow/v1b3/dataflow_v1b3_messages.py index 127d04bd66..f8ea883c8a 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dataflow/v1b3/dataflow_v1b3_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dataflow/v1b3/dataflow_v1b3_messages.py @@ -8801,3 +8801,11 @@ class WriteInstruction(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + DataflowProjectsLocationsTemplatesLaunchRequest, 'dynamicTemplate_gcsPath', 'dynamicTemplate.gcsPath') +encoding.AddCustomJsonFieldMapping( + DataflowProjectsLocationsTemplatesLaunchRequest, 'dynamicTemplate_stagingLocation', 'dynamicTemplate.stagingLocation') +encoding.AddCustomJsonFieldMapping( + DataflowProjectsTemplatesLaunchRequest, 'dynamicTemplate_gcsPath', 'dynamicTemplate.gcsPath') +encoding.AddCustomJsonFieldMapping( + DataflowProjectsTemplatesLaunchRequest, 'dynamicTemplate_stagingLocation', 'dynamicTemplate.stagingLocation') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datafusion/v1beta1/datafusion_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datafusion/v1beta1/datafusion_v1beta1_messages.py index cbd49c8e7f..01411d84e7 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datafusion/v1beta1/datafusion_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datafusion/v1beta1/datafusion_v1beta1_messages.py @@ -1799,3 +1799,7 @@ class TypeValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + DatafusionProjectsLocationsInstancesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DatafusionProjectsLocationsInstancesNamespacesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datamigration/v1/datamigration_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datamigration/v1/datamigration_v1_messages.py index 47fdcd087c..a23759aa08 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datamigration/v1/datamigration_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datamigration/v1/datamigration_v1_messages.py @@ -6084,3 +6084,11 @@ class VpcPeeringConnectivity(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + DatamigrationProjectsLocationsConnectionProfilesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DatamigrationProjectsLocationsConversionWorkspacesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DatamigrationProjectsLocationsMigrationJobsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DatamigrationProjectsLocationsPrivateConnectionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datamigration/v1alpha2/datamigration_v1alpha2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datamigration/v1alpha2/datamigration_v1alpha2_messages.py index 94c2d48f02..f4ca35b053 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datamigration/v1alpha2/datamigration_v1alpha2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/datamigration/v1alpha2/datamigration_v1alpha2_messages.py @@ -2060,3 +2060,7 @@ class VpcPeeringConnectivity(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + DatamigrationProjectsLocationsConnectionProfilesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DatamigrationProjectsLocationsMigrationJobsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dataplex/v1/dataplex_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dataplex/v1/dataplex_v1_messages.py index 3f81e67cfb..1219f7c2a1 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dataplex/v1/dataplex_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dataplex/v1/dataplex_v1_messages.py @@ -9099,3 +9099,33 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsAspectTypesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsDataAttributeBindingsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsDataScansGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsDataTaxonomiesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsDataTaxonomiesAttributesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsEntryGroupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsEntryTypesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsGovernanceRulesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsLakesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsLakesContentGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsLakesContentitemsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsLakesEnvironmentsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsLakesTasksGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsLakesZonesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + DataplexProjectsLocationsLakesZonesAssetsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dlp/v2/dlp_v2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dlp/v2/dlp_v2_messages.py index 58ed08cc1d..d700556d56 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dlp/v2/dlp_v2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/dlp/v2/dlp_v2_messages.py @@ -6369,7 +6369,7 @@ class GooglePrivacyDlpV2InfoType(_messages.Message): class GooglePrivacyDlpV2InfoTypeCategory(_messages.Message): r"""Classification of infoTypes to organize them according to geographic - location, industry, and data type. NEXT_ID: 47 + location, industry, and data type. NEXT_ID: 48 Enums: IndustryCategoryValueValuesEnum: The group of relevant businesses where @@ -6430,6 +6430,7 @@ class LocationCategoryValueValuesEnum(_messages.Enum): ISRAEL: The infoType is typically used in Israel. ITALY: The infoType is typically used in Italy. JAPAN: The infoType is typically used in Japan. + KAZAKHSTAN: The infoType is typically used in Kazakhstan. KOREA: The infoType is typically used in Korea. MEXICO: The infoType is typically used in Mexico. THE_NETHERLANDS: The infoType is typically used in the Netherlands. @@ -6478,31 +6479,32 @@ class LocationCategoryValueValuesEnum(_messages.Enum): ISRAEL = 19 ITALY = 20 JAPAN = 21 - KOREA = 22 - MEXICO = 23 - THE_NETHERLANDS = 24 - NEW_ZEALAND = 25 - NORWAY = 26 - PARAGUAY = 27 - PERU = 28 - POLAND = 29 - PORTUGAL = 30 - RUSSIA = 31 - SINGAPORE = 32 - SOUTH_AFRICA = 33 - SPAIN = 34 - SWEDEN = 35 - SWITZERLAND = 36 - TAIWAN = 37 - THAILAND = 38 - TURKEY = 39 - UKRAINE = 40 - UNITED_KINGDOM = 41 - UNITED_STATES = 42 - URUGUAY = 43 - UZBEKISTAN = 44 - VENEZUELA = 45 - INTERNAL = 46 + KAZAKHSTAN = 22 + KOREA = 23 + MEXICO = 24 + THE_NETHERLANDS = 25 + NEW_ZEALAND = 26 + NORWAY = 27 + PARAGUAY = 28 + PERU = 29 + POLAND = 30 + PORTUGAL = 31 + RUSSIA = 32 + SINGAPORE = 33 + SOUTH_AFRICA = 34 + SPAIN = 35 + SWEDEN = 36 + SWITZERLAND = 37 + TAIWAN = 38 + THAILAND = 39 + TURKEY = 40 + UKRAINE = 41 + UNITED_KINGDOM = 42 + UNITED_STATES = 43 + URUGUAY = 44 + UZBEKISTAN = 45 + VENEZUELA = 46 + INTERNAL = 47 class TypeCategoryValueValuesEnum(_messages.Enum): r"""The class of identifiers where this infoType belongs diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1/domains_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1/domains_v1_messages.py index 71b18e830d..4b0cdfd16d 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1/domains_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1/domains_v1_messages.py @@ -2340,3 +2340,5 @@ class TransferLockStateValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + DomainsProjectsLocationsRegistrationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1alpha2/domains_v1alpha2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1alpha2/domains_v1alpha2_messages.py index f75fc90069..89a436763f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1alpha2/domains_v1alpha2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1alpha2/domains_v1alpha2_messages.py @@ -2355,3 +2355,5 @@ class TransferLockStateValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + DomainsProjectsLocationsRegistrationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1beta1/domains_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1beta1/domains_v1beta1_messages.py index 9aa6966d7c..2b12137a91 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1beta1/domains_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/domains/v1beta1/domains_v1beta1_messages.py @@ -2340,3 +2340,5 @@ class TransferLockStateValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + DomainsProjectsLocationsRegistrationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/edgecontainer/v1alpha/edgecontainer_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/edgecontainer/v1alpha/edgecontainer_v1alpha_messages.py index ef92d50357..33308dcfa4 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/edgecontainer/v1alpha/edgecontainer_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/edgecontainer/v1alpha/edgecontainer_v1alpha_messages.py @@ -788,7 +788,6 @@ class Empty(_messages.Message): """ - class ExternalLoadBalancerPool(_messages.Message): r"""External load balancer pool with custom config such as name, manual/auto assign, non-overlapping ipv4 and optional ipv6 address range. @@ -960,17 +959,22 @@ class ListVpnConnectionsResponse(_messages.Message): class Local(_messages.Message): r"""Configuration specific to clusters with a control plane hosted locally. + Warning: Local control plane clusters must be created in their own project. - Local control plane clusters cannot coexist in the same project with any - other type of clusters, including non-GDCE clusters. Mixing local control - plane GDCE clusters with any other type of clusters in the same project can - result in data loss. + Local control plane clusters cannot coexist in the same project with any other + type of clusters, including non-GDCE clusters. Mixing local control plane GDCE + clusters with any other type of clusters in the same project can result in + data loss. Enums: SharedDeploymentPolicyValueValuesEnum: Policy configuration about how user applications are deployed. Fields: + controlPlaneNodeStorageSchema: Optional. Name for the storage schema of + control plane nodes. Warning: Configurable node local storage schema + feature is an experimental feature, and is not recommended for general + use in production clusters/nodepools. machineFilter: Only machines matching this filter will be allowed to host control plane nodes. The filtering language accepts strings like "name=", and is documented here: [AIP-160](https://google.aip.dev/160). @@ -995,10 +999,13 @@ class SharedDeploymentPolicyValueValuesEnum(_messages.Enum): ALLOWED = 1 DISALLOWED = 2 - machineFilter = _messages.StringField(1) - nodeCount = _messages.IntegerField(2, variant=_messages.Variant.INT32) - nodeLocation = _messages.StringField(3) - sharedDeploymentPolicy = _messages.EnumField('SharedDeploymentPolicyValueValuesEnum', 4) + controlPlaneNodeStorageSchema = _messages.StringField(1) + machineFilter = _messages.StringField(2) + nodeCount = _messages.IntegerField(3, variant=_messages.Variant.INT32) + nodeLocation = _messages.StringField(4) + sharedDeploymentPolicy = _messages.EnumField( + 'SharedDeploymentPolicyValueValuesEnum', 5 + ) class LocalDiskEncryption(_messages.Message): @@ -1362,6 +1369,10 @@ class NodeConfig(_messages.Message): Fields: labels: Optional. The Kubernetes node labels + nodeStorageSchema: Optional. Name for the storage schema of worker nodes. + Warning: Configurable node local storage schema feature is an + experimental feature, and is not recommended for general use in + production clusters/nodepools. """ @encoding.MapUnrecognizedFields('additionalProperties') @@ -1389,6 +1400,7 @@ class AdditionalProperty(_messages.Message): additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True) labels = _messages.MessageField('LabelsValue', 1) + nodeStorageSchema = _messages.StringField(2) class NodePool(_messages.Message): @@ -1640,7 +1652,6 @@ class Remote(_messages.Message): """ - class SdsOperator(_messages.Message): r"""Config for the SDS Operator add-on which installs Robin CNS. diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/eventarc/v1/eventarc_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/eventarc/v1/eventarc_v1_messages.py index c8223761bb..0a6395cfd7 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/eventarc/v1/eventarc_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/eventarc/v1/eventarc_v1_messages.py @@ -1895,3 +1895,9 @@ class AdditionalProperty(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + EventarcProjectsLocationsChannelConnectionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + EventarcProjectsLocationsChannelsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + EventarcProjectsLocationsTriggersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1/firestore_v1_client.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1/firestore_v1_client.py index 4229227273..4c326630c9 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1/firestore_v1_client.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1/firestore_v1_client.py @@ -1165,7 +1165,7 @@ def List(self, request, global_params=None): method_id='firestore.projects.databases.list', ordered_params=['parent'], path_params=['parent'], - query_params=[], + query_params=['showDeleted'], relative_path='v1/{+parent}/databases', request_field='', request_type_name='FirestoreProjectsDatabasesListRequest', diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1/firestore_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1/firestore_v1_messages.py index b5bcb85d0d..20b30f4a33 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1/firestore_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1/firestore_v1_messages.py @@ -591,7 +591,6 @@ class Empty(_messages.Message): """ - class ExecutionStats(_messages.Message): r"""Execution statistics for the query. @@ -1003,7 +1002,7 @@ class FirestoreProjectsDatabasesCollectionGroupsFieldsListRequest(_messages.Mess FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with a filter that includes - `indexConfig.usesAncestorConfig:false` . + `indexConfig.usesAncestorConfig:false` or `ttlConfig:*`. pageSize: The number of results to return. pageToken: A page token, returned from a previous call to FirestoreAdmin.ListFields, that may be used to get the next page of @@ -1542,9 +1541,11 @@ class FirestoreProjectsDatabasesListRequest(_messages.Message): Fields: parent: Required. A parent name of the form `projects/{project_id}` + showDeleted: If true, also returns deleted resources. """ parent = _messages.StringField(1, required=True) + showDeleted = _messages.BooleanField(2) class FirestoreProjectsDatabasesOperationsCancelRequest(_messages.Message): @@ -1807,7 +1808,6 @@ class GoogleFirestoreAdminV1DailyRecurrence(_messages.Message): """ - class GoogleFirestoreAdminV1Database(_messages.Message): r"""A Cloud Firestore Database. @@ -1833,6 +1833,8 @@ class GoogleFirestoreAdminV1Database(_messages.Message): createTime: Output only. The timestamp at which this database was created. Databases created before 2016 do not populate create_time. deleteProtectionState: State of delete protection for the database. + deleteTime: Output only. The timestamp at which this database was soft + deleted. Only set if the database has been soft deleted. earliestVersionTime: Output only. The earliest timestamp at which older versions of the data can be read from the database. See [version_retention_period] above; this field is populated with `now - @@ -1957,16 +1959,19 @@ class TypeValueValuesEnum(_messages.Enum): concurrencyMode = _messages.EnumField('ConcurrencyModeValueValuesEnum', 3) createTime = _messages.StringField(4) deleteProtectionState = _messages.EnumField('DeleteProtectionStateValueValuesEnum', 5) - earliestVersionTime = _messages.StringField(6) - etag = _messages.StringField(7) - keyPrefix = _messages.StringField(8) - locationId = _messages.StringField(9) - name = _messages.StringField(10) - pointInTimeRecoveryEnablement = _messages.EnumField('PointInTimeRecoveryEnablementValueValuesEnum', 11) - type = _messages.EnumField('TypeValueValuesEnum', 12) - uid = _messages.StringField(13) - updateTime = _messages.StringField(14) - versionRetentionPeriod = _messages.StringField(15) + deleteTime = _messages.StringField(6) + earliestVersionTime = _messages.StringField(7) + etag = _messages.StringField(8) + keyPrefix = _messages.StringField(9) + locationId = _messages.StringField(10) + name = _messages.StringField(11) + pointInTimeRecoveryEnablement = _messages.EnumField( + 'PointInTimeRecoveryEnablementValueValuesEnum', 12 + ) + type = _messages.EnumField('TypeValueValuesEnum', 13) + uid = _messages.StringField(14) + updateTime = _messages.StringField(15) + versionRetentionPeriod = _messages.StringField(16) class GoogleFirestoreAdminV1DatabaseSnapshot(_messages.Message): @@ -2190,7 +2195,6 @@ class GoogleFirestoreAdminV1FlatIndex(_messages.Message): """ - class GoogleFirestoreAdminV1ImportDocumentsMetadata(_messages.Message): r"""Metadata for google.longrunning.Operation results from FirestoreAdmin.ImportDocuments. @@ -4077,3 +4081,23 @@ class WriteResult(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsCreateDocumentRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsDeleteRequest, 'currentDocument_exists', 'currentDocument.exists') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsDeleteRequest, 'currentDocument_updateTime', 'currentDocument.updateTime') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsGetRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsListRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsListDocumentsRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsPatchRequest, 'currentDocument_exists', 'currentDocument.exists') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsPatchRequest, 'currentDocument_updateTime', 'currentDocument.updateTime') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsPatchRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsPatchRequest, 'updateMask_fieldPaths', 'updateMask.fieldPaths') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1beta1/firestore_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1beta1/firestore_v1beta1_messages.py index ee650ff3e6..dfcd4efd01 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1beta1/firestore_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/firestore/v1beta1/firestore_v1beta1_messages.py @@ -2864,3 +2864,23 @@ class WriteResult(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsCreateDocumentRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsDeleteRequest, 'currentDocument_exists', 'currentDocument.exists') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsDeleteRequest, 'currentDocument_updateTime', 'currentDocument.updateTime') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsGetRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsListRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsListDocumentsRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsPatchRequest, 'currentDocument_exists', 'currentDocument.exists') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsPatchRequest, 'currentDocument_updateTime', 'currentDocument.updateTime') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsPatchRequest, 'mask_fieldPaths', 'mask.fieldPaths') +encoding.AddCustomJsonFieldMapping( + FirestoreProjectsDatabasesDocumentsPatchRequest, 'updateMask_fieldPaths', 'updateMask.fieldPaths') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkebackup/v1/gkebackup_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkebackup/v1/gkebackup_v1_messages.py index c087c960c7..777459d955 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkebackup/v1/gkebackup_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkebackup/v1/gkebackup_v1_messages.py @@ -3363,3 +3363,15 @@ class VolumeTypeValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + GkebackupProjectsLocationsBackupPlansGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkebackupProjectsLocationsBackupPlansBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkebackupProjectsLocationsBackupPlansBackupsVolumeBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkebackupProjectsLocationsRestorePlansGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkebackupProjectsLocationsRestorePlansRestoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkebackupProjectsLocationsRestorePlansRestoresVolumeRestoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1/gkehub_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1/gkehub_v1_messages.py index 012757a685..80ad8b5b15 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1/gkehub_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1/gkehub_v1_messages.py @@ -6637,3 +6637,9 @@ class WorkloadMigrationFeatureSpec(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsFeaturesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsMembershipsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsScopesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha/gkehub_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha/gkehub_v1alpha_messages.py index d32536af8e..0f439b6373 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha/gkehub_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha/gkehub_v1alpha_messages.py @@ -8510,3 +8510,9 @@ class WorkloadMigrationFeatureSpec(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsFeaturesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsMembershipsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsScopesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha1/gkehub_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha1/gkehub_v1alpha1_messages.py index 8d1b3abb80..a5f78aac6d 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha1/gkehub_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha1/gkehub_v1alpha1_messages.py @@ -5042,3 +5042,5 @@ class CertificateManagementValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsFeaturesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha2/gkehub_v1alpha2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha2/gkehub_v1alpha2_messages.py index d2913b4484..9097dcb9a2 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha2/gkehub_v1alpha2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1alpha2/gkehub_v1alpha2_messages.py @@ -2028,3 +2028,5 @@ class TypeMeta(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsMembershipsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1beta/gkehub_v1beta_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1beta/gkehub_v1beta_messages.py index 61eac9e24b..4021cc4faf 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1beta/gkehub_v1beta_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1beta/gkehub_v1beta_messages.py @@ -7272,3 +7272,9 @@ class WorkloadMigrationFeatureSpec(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsFeaturesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsMembershipsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsScopesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1beta1/gkehub_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1beta1/gkehub_v1beta1_messages.py index c6d1b5e0b2..84e076ecfd 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1beta1/gkehub_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkehub/v1beta1/gkehub_v1beta1_messages.py @@ -2083,3 +2083,11 @@ class ValidateExclusivityResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsMembershipsGenerateConnectManifestRequest, 'connectAgent_name', 'connectAgent.name') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsMembershipsGenerateConnectManifestRequest, 'connectAgent_namespace', 'connectAgent.namespace') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsMembershipsGenerateConnectManifestRequest, 'connectAgent_proxy', 'connectAgent.proxy') +encoding.AddCustomJsonFieldMapping( + GkehubProjectsLocationsMembershipsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkemulticloud/v1/gkemulticloud_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkemulticloud/v1/gkemulticloud_v1_messages.py index dfab86764e..4303765f6c 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkemulticloud/v1/gkemulticloud_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkemulticloud/v1/gkemulticloud_v1_messages.py @@ -3867,3 +3867,7 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + GkemulticloudProjectsLocationsGenerateAttachedClusterInstallManifestRequest, 'proxyConfig_kubernetesSecret_name', 'proxyConfig.kubernetesSecret.name') +encoding.AddCustomJsonFieldMapping( + GkemulticloudProjectsLocationsGenerateAttachedClusterInstallManifestRequest, 'proxyConfig_kubernetesSecret_namespace', 'proxyConfig.kubernetesSecret.namespace') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkeonprem/v1/gkeonprem_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkeonprem/v1/gkeonprem_v1_messages.py index 1e00e41831..12356247d8 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkeonprem/v1/gkeonprem_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/gkeonprem/v1/gkeonprem_v1_messages.py @@ -7200,3 +7200,31 @@ class VmwareVsphereTag(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsBareMetalAdminClustersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsBareMetalAdminClustersQueryVersionConfigRequest, 'upgradeConfig_clusterName', 'upgradeConfig.clusterName') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsBareMetalClustersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsBareMetalClustersQueryVersionConfigRequest, 'createConfig_adminClusterMembership', 'createConfig.adminClusterMembership') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsBareMetalClustersQueryVersionConfigRequest, 'createConfig_adminClusterName', 'createConfig.adminClusterName') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsBareMetalClustersQueryVersionConfigRequest, 'upgradeConfig_clusterName', 'upgradeConfig.clusterName') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsBareMetalClustersBareMetalNodePoolsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsBareMetalStandaloneClustersQueryVersionConfigRequest, 'upgradeConfig_clusterName', 'upgradeConfig.clusterName') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsVmwareAdminClustersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsVmwareClustersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsVmwareClustersQueryVersionConfigRequest, 'createConfig_adminClusterMembership', 'createConfig.adminClusterMembership') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsVmwareClustersQueryVersionConfigRequest, 'createConfig_adminClusterName', 'createConfig.adminClusterName') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsVmwareClustersQueryVersionConfigRequest, 'upgradeConfig_clusterName', 'upgradeConfig.clusterName') +encoding.AddCustomJsonFieldMapping( + GkeonpremProjectsLocationsVmwareClustersVmwareNodePoolsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1/healthcare_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1/healthcare_v1_messages.py index d67034a745..24013e0874 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1/healthcare_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1/healthcare_v1_messages.py @@ -6849,3 +6849,13 @@ class VersionSource(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsConsentStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsDicomStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsFhirStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsHl7V2StoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1alpha2/healthcare_v1alpha2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1alpha2/healthcare_v1alpha2_messages.py index a5242641bd..27b88f0bd0 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1alpha2/healthcare_v1alpha2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1alpha2/healthcare_v1alpha2_messages.py @@ -5634,3 +5634,19 @@ class UserDataMapping(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsAnnotationStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsConsentStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsDataMapperWorkspacesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsDataProtectionStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsDicomStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsFhirStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsHl7V2StoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1beta1/healthcare_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1beta1/healthcare_v1beta1_messages.py index cdf98b8c81..d80ceee943 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1beta1/healthcare_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/healthcare/v1beta1/healthcare_v1beta1_messages.py @@ -9573,3 +9573,17 @@ class Vertex(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsAnnotationStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsConsentStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsDataMapperWorkspacesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsDicomStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsFhirStoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + HealthcareProjectsLocationsDatasetsHl7V2StoresGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/iam/v1/iam_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/iam/v1/iam_v1_messages.py index de6b1a177c..2b038e7d1e 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/iam/v1/iam_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/iam/v1/iam_v1_messages.py @@ -6073,3 +6073,5 @@ class X509(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + IamProjectsServiceAccountsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/iam/v3beta/iam_v3beta_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/iam/v3beta/iam_v3beta_messages.py index 4b982c8eba..0746cc6043 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/iam/v3beta/iam_v3beta_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/iam/v3beta/iam_v3beta_messages.py @@ -351,9 +351,11 @@ class PolicyKindValueValuesEnum(_messages.Enum): Values: POLICY_KIND_UNSPECIFIED: Unspecified policy kind; Not a valid state PRINCIPAL_ACCESS_BOUNDARY: Principal access boundary policy kind + ACCESS: Access policy kind """ POLICY_KIND_UNSPECIFIED = 0 PRINCIPAL_ACCESS_BOUNDARY = 1 + ACCESS = 2 @encoding.MapUnrecognizedFields('additionalProperties') class AnnotationsValue(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ids/v1/ids_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ids/v1/ids_v1_messages.py index b0c7547be9..262ca1bbf5 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ids/v1/ids_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ids/v1/ids_v1_messages.py @@ -2412,3 +2412,5 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + IdsProjectsLocationsEndpointsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/krmapihosting/v1/krmapihosting_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/krmapihosting/v1/krmapihosting_v1_messages.py index ef0db83a0c..ee9d89e82c 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/krmapihosting/v1/krmapihosting_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/krmapihosting/v1/krmapihosting_v1_messages.py @@ -1209,3 +1209,5 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + KrmapihostingProjectsLocationsKrmApiHostsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/krmapihosting/v1alpha1/krmapihosting_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/krmapihosting/v1alpha1/krmapihosting_v1alpha1_messages.py index 805585f992..be32e33a75 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/krmapihosting/v1alpha1/krmapihosting_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/krmapihosting/v1alpha1/krmapihosting_v1alpha1_messages.py @@ -1301,3 +1301,5 @@ class YakimaConfig(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + KrmapihostingProjectsLocationsKrmApiHostsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/looker/v1/looker_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/looker/v1/looker_v1_messages.py index 0f1725f6c6..981c68d762 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/looker/v1/looker_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/looker/v1/looker_v1_messages.py @@ -1514,3 +1514,7 @@ class UserMetadata(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + LookerProjectsLocationsInstancesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + LookerProjectsLocationsInstancesBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/looker/v1alpha1/looker_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/looker/v1alpha1/looker_v1alpha1_messages.py index 9dd373aeaf..67dd82fbc4 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/looker/v1alpha1/looker_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/looker/v1alpha1/looker_v1alpha1_messages.py @@ -1674,3 +1674,7 @@ class Users(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + LookerProjectsLocationsInstancesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + LookerProjectsLocationsInstancesBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1/managedidentities_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1/managedidentities_v1_messages.py index 97ba55fc93..a41a7de9f9 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1/managedidentities_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1/managedidentities_v1_messages.py @@ -3061,3 +3061,9 @@ class WeeklyCycle(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ManagedidentitiesProjectsLocationsGlobalDomainsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ManagedidentitiesProjectsLocationsGlobalDomainsBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ManagedidentitiesProjectsLocationsGlobalPeeringsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1alpha1/managedidentities_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1alpha1/managedidentities_v1alpha1_messages.py index 4f8b076d7a..2e328cef05 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1alpha1/managedidentities_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1alpha1/managedidentities_v1alpha1_messages.py @@ -3192,3 +3192,9 @@ class WeeklyCycle(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ManagedidentitiesProjectsLocationsGlobalDomainsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ManagedidentitiesProjectsLocationsGlobalDomainsBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ManagedidentitiesProjectsLocationsGlobalPeeringsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1beta1/managedidentities_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1beta1/managedidentities_v1beta1_messages.py index 13f4f3ef3f..2518bab0c0 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1beta1/managedidentities_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedidentities/v1beta1/managedidentities_v1beta1_messages.py @@ -3071,3 +3071,9 @@ class WeeklyCycle(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + ManagedidentitiesProjectsLocationsGlobalDomainsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ManagedidentitiesProjectsLocationsGlobalDomainsBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + ManagedidentitiesProjectsLocationsGlobalPeeringsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedkafka/v1/managedkafka_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedkafka/v1/managedkafka_v1_messages.py index 2e8109ee74..fab75b8d7c 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedkafka/v1/managedkafka_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/managedkafka/v1/managedkafka_v1_messages.py @@ -1075,13 +1075,13 @@ class Topic(_messages.Message): name: Identifier. The name of the topic. The `topic` segment is used when connecting directly to the cluster. Structured like: projects/{project}/ locations/{location}/clusters/{cluster}/topics/{topic} - partitionCount: Optional. The number of partitions this topic has. The + partitionCount: Required. The number of partitions this topic has. The partition count can only be increased, not decreased. Please note that if partitions are increased for a topic that has a key, the partitioning logic or the ordering of the messages will be affected. - replicationFactor: Optional. Immutable. The number of replicas of each - partition. If not specified during creation, the cluster's default - replication factor (3) is used. + replicationFactor: Required. Immutable. The number of replicas of each + partition. A replication factor of 3 is recommended for high + availability. """ @encoding.MapUnrecognizedFields('additionalProperties') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/mediaasset/v1alpha/mediaasset_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/mediaasset/v1alpha/mediaasset_v1alpha_messages.py index 0b2a08fe74..0b1c95f2df 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/mediaasset/v1alpha/mediaasset_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/mediaasset/v1alpha/mediaasset_v1alpha_messages.py @@ -4751,3 +4751,15 @@ class TriggerActionResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + MediaassetProjectsLocationsAssetTypesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MediaassetProjectsLocationsAssetTypesAssetsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MediaassetProjectsLocationsAssetTypesAssetsAnnotationSetsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MediaassetProjectsLocationsAssetTypesAssetsAnnotationSetsAnnotationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MediaassetProjectsLocationsComplexTypesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MediaassetProjectsLocationsTransformersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/messagestreams/v1alpha/messagestreams_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/messagestreams/v1alpha/messagestreams_v1alpha_messages.py index 234801cf6a..336d9f4797 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/messagestreams/v1alpha/messagestreams_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/messagestreams/v1alpha/messagestreams_v1alpha_messages.py @@ -228,6 +228,9 @@ class KafkaSource(_messages.Message): brokerUris: Required. The Kafka broker URIs. e.g. 10.12.34.56:8080 consumerGroupId: Required. The consumer group ID used by the Kafka broker to track the offsets of all topic partitions being read by this Stream. + initialOffset: Optional. The initial message offset from which to start + streaming. If unspecified, Stream will start streaming from the newest + message. Supported values: newest, oldest. kafkaAuthenticationConfig: Optional. Authentication configuration used to authenticate the Kafka client with the Kafka broker, and authorize to read the topic(s). @@ -236,8 +239,9 @@ class KafkaSource(_messages.Message): brokerUris = _messages.StringField(1, repeated=True) consumerGroupId = _messages.StringField(2) - kafkaAuthenticationConfig = _messages.MessageField('KafkaAuthenticationConfig', 3) - topics = _messages.StringField(4, repeated=True) + initialOffset = _messages.StringField(3) + kafkaAuthenticationConfig = _messages.MessageField('KafkaAuthenticationConfig', 4) + topics = _messages.StringField(5, repeated=True) class ListLocationsResponse(_messages.Message): @@ -827,7 +831,9 @@ class SaslAuthConfig(_messages.Message): Fields: mechanism: A MechanismValueValuesEnum attribute. passwordSecret: Required. The password for the authentication identity may - be loaded from Secret Manager. + be loaded from Secret Manager. Supported Format: 1- + "projects/{project}/secrets/{secret}/versions/{version}" 2- "projects/{p + roject}/locations/{location}/secrets/{secret}/versions/{version}" username: Required. The SASL authentication identity (username). """ diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1/metastore_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1/metastore_v1_messages.py index ffeea7fbea..c93005bcd0 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1/metastore_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1/metastore_v1_messages.py @@ -2875,3 +2875,9 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsFederationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1alpha/metastore_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1alpha/metastore_v1alpha_messages.py index 95880b8bd3..3787836d8c 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1alpha/metastore_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1alpha/metastore_v1alpha_messages.py @@ -3505,3 +3505,13 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsFederationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesDatabasesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesDatabasesTablesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1beta/metastore_v1beta_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1beta/metastore_v1beta_messages.py index 621c50eafe..bcd55e84fe 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1beta/metastore_v1beta_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/metastore/v1beta/metastore_v1beta_messages.py @@ -3505,3 +3505,13 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsFederationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesBackupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesDatabasesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MetastoreProjectsLocationsServicesDatabasesTablesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ml/v1/ml_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ml/v1/ml_v1_messages.py index 09b197bb16..546f9dbb15 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ml/v1/ml_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ml/v1/ml_v1_messages.py @@ -4609,3 +4609,7 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + MlProjectsJobsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + MlProjectsModelsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/monitoring/v1/monitoring_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/monitoring/v1/monitoring_v1_messages.py index 621b413e48..ae3c94eb08 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/monitoring/v1/monitoring_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/monitoring/v1/monitoring_v1_messages.py @@ -599,6 +599,7 @@ class DashboardFilter(_messages.Message): FilterTypeValueValuesEnum: The specified filter type Fields: + applyToNewWidgets: Whether to apply this filter to new widgets by default filterType: The specified filter type labelKey: Required. The key for the label stringValue: A variable-length string value. @@ -626,10 +627,11 @@ class FilterTypeValueValuesEnum(_messages.Enum): SYSTEM_METADATA_LABEL = 4 GROUP = 5 - filterType = _messages.EnumField('FilterTypeValueValuesEnum', 1) - labelKey = _messages.StringField(2) - stringValue = _messages.StringField(3) - templateVariable = _messages.StringField(4) + applyToNewWidgets = _messages.BooleanField(1) + filterType = _messages.EnumField('FilterTypeValueValuesEnum', 2) + labelKey = _messages.StringField(3) + stringValue = _messages.StringField(4) + templateVariable = _messages.StringField(5) class DataSet(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/monitoring/v3/monitoring_v3_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/monitoring/v3/monitoring_v3_messages.py index 520251c740..fdb648d4bc 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/monitoring/v3/monitoring_v3_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/monitoring/v3/monitoring_v3_messages.py @@ -7926,3 +7926,67 @@ class WindowsBasedSli(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'aggregation_alignmentPeriod', 'aggregation.alignmentPeriod') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'aggregation_crossSeriesReducer', 'aggregation.crossSeriesReducer') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'aggregation_groupByFields', 'aggregation.groupByFields') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'aggregation_perSeriesAligner', 'aggregation.perSeriesAligner') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'interval_endTime', 'interval.endTime') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'interval_startTime', 'interval.startTime') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'secondaryAggregation_alignmentPeriod', 'secondaryAggregation.alignmentPeriod') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'secondaryAggregation_crossSeriesReducer', 'secondaryAggregation.crossSeriesReducer') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'secondaryAggregation_groupByFields', 'secondaryAggregation.groupByFields') +encoding.AddCustomJsonFieldMapping( + MonitoringFoldersTimeSeriesListRequest, 'secondaryAggregation_perSeriesAligner', 'secondaryAggregation.perSeriesAligner') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'aggregation_alignmentPeriod', 'aggregation.alignmentPeriod') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'aggregation_crossSeriesReducer', 'aggregation.crossSeriesReducer') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'aggregation_groupByFields', 'aggregation.groupByFields') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'aggregation_perSeriesAligner', 'aggregation.perSeriesAligner') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'interval_endTime', 'interval.endTime') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'interval_startTime', 'interval.startTime') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'secondaryAggregation_alignmentPeriod', 'secondaryAggregation.alignmentPeriod') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'secondaryAggregation_crossSeriesReducer', 'secondaryAggregation.crossSeriesReducer') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'secondaryAggregation_groupByFields', 'secondaryAggregation.groupByFields') +encoding.AddCustomJsonFieldMapping( + MonitoringOrganizationsTimeSeriesListRequest, 'secondaryAggregation_perSeriesAligner', 'secondaryAggregation.perSeriesAligner') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsGroupsMembersListRequest, 'interval_endTime', 'interval.endTime') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsGroupsMembersListRequest, 'interval_startTime', 'interval.startTime') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'aggregation_alignmentPeriod', 'aggregation.alignmentPeriod') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'aggregation_crossSeriesReducer', 'aggregation.crossSeriesReducer') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'aggregation_groupByFields', 'aggregation.groupByFields') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'aggregation_perSeriesAligner', 'aggregation.perSeriesAligner') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'interval_endTime', 'interval.endTime') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'interval_startTime', 'interval.startTime') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'secondaryAggregation_alignmentPeriod', 'secondaryAggregation.alignmentPeriod') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'secondaryAggregation_crossSeriesReducer', 'secondaryAggregation.crossSeriesReducer') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'secondaryAggregation_groupByFields', 'secondaryAggregation.groupByFields') +encoding.AddCustomJsonFieldMapping( + MonitoringProjectsTimeSeriesListRequest, 'secondaryAggregation_perSeriesAligner', 'secondaryAggregation.perSeriesAligner') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1/netapp_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1/netapp_v1_messages.py index ffa1cf33c2..4d2c9458d7 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1/netapp_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1/netapp_v1_messages.py @@ -27,8 +27,6 @@ class ActiveDirectory(_messages.Message): LabelsValue: Labels for the active directory. Fields: - administrators: Optional. Users to be added to the Built-in - Admininstrators group. aesEncryption: If enabled, AES encryption will be enabled for SMB communication. backupOperators: Optional. Users to be added to the Built-in Backup @@ -108,28 +106,27 @@ class AdditionalProperty(_messages.Message): additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True) - administrators = _messages.StringField(1, repeated=True) - aesEncryption = _messages.BooleanField(2) - backupOperators = _messages.StringField(3, repeated=True) - createTime = _messages.StringField(4) - description = _messages.StringField(5) - dns = _messages.StringField(6) - domain = _messages.StringField(7) - encryptDcConnections = _messages.BooleanField(8) - kdcHostname = _messages.StringField(9) - kdcIp = _messages.StringField(10) - labels = _messages.MessageField('LabelsValue', 11) - ldapSigning = _messages.BooleanField(12) - name = _messages.StringField(13) - netBiosPrefix = _messages.StringField(14) - nfsUsersWithLdap = _messages.BooleanField(15) - organizationalUnit = _messages.StringField(16) - password = _messages.StringField(17) - securityOperators = _messages.StringField(18, repeated=True) - site = _messages.StringField(19) - state = _messages.EnumField('StateValueValuesEnum', 20) - stateDetails = _messages.StringField(21) - username = _messages.StringField(22) + aesEncryption = _messages.BooleanField(1) + backupOperators = _messages.StringField(2, repeated=True) + createTime = _messages.StringField(3) + description = _messages.StringField(4) + dns = _messages.StringField(5) + domain = _messages.StringField(6) + encryptDcConnections = _messages.BooleanField(7) + kdcHostname = _messages.StringField(8) + kdcIp = _messages.StringField(9) + labels = _messages.MessageField('LabelsValue', 10) + ldapSigning = _messages.BooleanField(11) + name = _messages.StringField(12) + netBiosPrefix = _messages.StringField(13) + nfsUsersWithLdap = _messages.BooleanField(14) + organizationalUnit = _messages.StringField(15) + password = _messages.StringField(16) + securityOperators = _messages.StringField(17, repeated=True) + site = _messages.StringField(18) + state = _messages.EnumField('StateValueValuesEnum', 19) + stateDetails = _messages.StringField(20) + username = _messages.StringField(21) class Backup(_messages.Message): @@ -1427,12 +1424,12 @@ class NetappProjectsLocationsStoragePoolsListRequest(_messages.Message): r"""A NetappProjectsLocationsStoragePoolsListRequest object. Fields: - filter: List filter. - orderBy: Sort results. Supported values are "name", "name desc" or "" - (unsorted). - pageSize: The maximum number of items to return. - pageToken: The next_page_token value to use if there are additional - results to retrieve for this list request. + filter: Optional. List filter. + orderBy: Optional. Sort results. Supported values are "name", "name desc" + or "" (unsorted). + pageSize: Optional. The maximum number of items to return. + pageToken: Optional. The next_page_token value to use if there are + additional results to retrieve for this list request. parent: Required. Parent value """ @@ -2366,26 +2363,28 @@ class StoragePool(_messages.Message): StateValueValuesEnum: Output only. State of the storage pool Messages: - LabelsValue: Labels as key value pairs + LabelsValue: Optional. Labels as key value pairs Fields: - activeDirectory: Specifies the Active Directory to be used for creating a - SMB volume. + activeDirectory: Optional. Specifies the Active Directory to be used for + creating a SMB volume. capacityGib: Required. Capacity in GIB of the pool createTime: Output only. Create time of the storage pool - description: Description of the storage pool + description: Optional. Description of the storage pool encryptionType: Output only. Specifies the current pool encryption key source. globalAccessAllowed: Deprecated. Used to allow SO pool to access AD or DNS server from other regions. - kmsConfig: Specifies the KMS config to be used for volume encryption. - labels: Labels as key value pairs - ldapEnabled: Flag indicating if the pool is NFS LDAP enabled or not. + kmsConfig: Optional. Specifies the KMS config to be used for volume + encryption. + labels: Optional. Labels as key value pairs + ldapEnabled: Optional. Flag indicating if the pool is NFS LDAP enabled or + not. name: Identifier. Name of the storage pool network: Required. VPC Network name. Format: projects/{project}/global/networks/{network} - psaRange: Name of the Private Service Access allocated range. If not - provided, any available range will be chosen. + psaRange: Optional. This field is not implemented. The values provided in + this field are ignored. serviceLevel: Required. Service level of the storage pool state: Output only. State of the storage pool stateDetails: Output only. State details of the storage pool @@ -2398,7 +2397,7 @@ class EncryptionTypeValueValuesEnum(_messages.Enum): r"""Output only. Specifies the current pool encryption key source. Values: - ENCRYPTION_TYPE_UNSPECIFIED: The source of encryption key is not + ENCRYPTION_TYPE_UNSPECIFIED: The source of the encryption key is not specified. SERVICE_MANAGED: Google managed encryption key. CLOUD_KMS: Customer managed encryption key, which is stored in KMS. @@ -2414,12 +2413,14 @@ class ServiceLevelValueValuesEnum(_messages.Enum): SERVICE_LEVEL_UNSPECIFIED: Unspecified service level. PREMIUM: Premium service level. EXTREME: Extreme service level. - STANDARD: Standard (Software offering) + STANDARD: Standard service level. + FLEX: Flex service level. """ SERVICE_LEVEL_UNSPECIFIED = 0 PREMIUM = 1 EXTREME = 2 STANDARD = 3 + FLEX = 4 class StateValueValuesEnum(_messages.Enum): r"""Output only. State of the storage pool @@ -2445,7 +2446,7 @@ class StateValueValuesEnum(_messages.Enum): @encoding.MapUnrecognizedFields('additionalProperties') class LabelsValue(_messages.Message): - r"""Labels as key value pairs + r"""Optional. Labels as key value pairs Messages: AdditionalProperty: An additional property for a LabelsValue object. @@ -2486,6 +2487,39 @@ class AdditionalProperty(_messages.Message): volumeCount = _messages.IntegerField(17, variant=_messages.Variant.INT32) +class TieringPolicy(_messages.Message): + r"""Defines tiering policy for the volume. + + Enums: + TierActionValueValuesEnum: Optional. Flag indicating if the volume has + tiering policy enable/pause. Default is PAUSED. + + Fields: + coolingThresholdDays: Optional. Time in days to mark the volume's data + block as cold and make it eligible for tiering, can be range from 7-183. + Default is 31. + tierAction: Optional. Flag indicating if the volume has tiering policy + enable/pause. Default is PAUSED. + """ + + class TierActionValueValuesEnum(_messages.Enum): + r"""Optional. Flag indicating if the volume has tiering policy + enable/pause. Default is PAUSED. + + Values: + TIER_ACTION_UNSPECIFIED: Unspecified. + ENABLED: When tiering is enabled, new cold data will be tiered. + PAUSED: When paused, tiering won't be performed on new data. Existing + data stays tiered until accessed. + """ + TIER_ACTION_UNSPECIFIED = 0 + ENABLED = 1 + PAUSED = 2 + + coolingThresholdDays = _messages.IntegerField(1, variant=_messages.Variant.INT32) + tierAction = _messages.EnumField('TierActionValueValuesEnum', 2) + + class TransferStats(_messages.Message): r"""TransferStats reports all statistics related to replication transfer. @@ -2574,8 +2608,8 @@ class Volume(_messages.Message): network: Output only. VPC Network name. Format: projects/{project}/global/networks/{network} protocols: Required. Protocols required for the volume - psaRange: Output only. Name of the Private Service Access allocated range. - This is optional. If not provided, any available range will be chosen. + psaRange: Output only. This field is not implemented. The values provided + in this field are ignored. restoreParameters: Optional. Specifies the source of the volume to be created from. restrictedActions: Optional. List of actions that are restricted on this @@ -2593,6 +2627,7 @@ class Volume(_messages.Message): state: Output only. State of the volume stateDetails: Output only. State details of the volume storagePool: Required. StoragePool name of the volume + tieringPolicy: Tiering policy for the volume. unixPermissions: Optional. Default unix style permission (e.g. 777) the mount point will be created with. Applicable for NFS protocol types only. @@ -2604,7 +2639,7 @@ class EncryptionTypeValueValuesEnum(_messages.Enum): r"""Output only. Specified the current volume encryption key source. Values: - ENCRYPTION_TYPE_UNSPECIFIED: The source of encryption key is not + ENCRYPTION_TYPE_UNSPECIFIED: The source of the encryption key is not specified. SERVICE_MANAGED: Google managed encryption key. CLOUD_KMS: Customer managed encryption key, which is stored in KMS. @@ -2643,7 +2678,7 @@ class SecurityStyleValueValuesEnum(_messages.Enum): Values: SECURITY_STYLE_UNSPECIFIED: SecurityStyle is unspecified NTFS: SecurityStyle uses NTFS - UNIX: SecurityStyle uses NTFS + UNIX: SecurityStyle uses UNIX """ SECURITY_STYLE_UNSPECIFIED = 0 NTFS = 1 @@ -2656,12 +2691,14 @@ class ServiceLevelValueValuesEnum(_messages.Enum): SERVICE_LEVEL_UNSPECIFIED: Unspecified service level. PREMIUM: Premium service level. EXTREME: Extreme service level. - STANDARD: Standard (Software offering) + STANDARD: Standard service level. + FLEX: Flex service level. """ SERVICE_LEVEL_UNSPECIFIED = 0 PREMIUM = 1 EXTREME = 2 STANDARD = 3 + FLEX = 4 class SmbSettingsValueListEntryValuesEnum(_messages.Enum): r"""SmbSettingsValueListEntryValuesEnum enum type. @@ -2765,8 +2802,9 @@ class AdditionalProperty(_messages.Message): state = _messages.EnumField('StateValueValuesEnum', 27) stateDetails = _messages.StringField(28) storagePool = _messages.StringField(29) - unixPermissions = _messages.StringField(30) - usedGib = _messages.IntegerField(31) + tieringPolicy = _messages.MessageField('TieringPolicy', 30) + unixPermissions = _messages.StringField(31) + usedGib = _messages.IntegerField(32) class WeeklySchedule(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1alpha1/netapp_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1alpha1/netapp_v1alpha1_messages.py index 3214727385..ffb952b9d7 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1alpha1/netapp_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1alpha1/netapp_v1alpha1_messages.py @@ -825,6 +825,36 @@ class AdditionalProperty(_messages.Message): name = _messages.StringField(5) +class LocationMetadata(_messages.Message): + r"""Metadata for a given google.cloud.location.Location. + + Enums: + SupportedServiceLevelsValueListEntryValuesEnum: + + Fields: + supportedServiceLevels: Output only. Supported service levels in a + location. + """ + + class SupportedServiceLevelsValueListEntryValuesEnum(_messages.Enum): + r"""SupportedServiceLevelsValueListEntryValuesEnum enum type. + + Values: + SERVICE_LEVEL_UNSPECIFIED: Unspecified service level. + PREMIUM: Premium service level. + EXTREME: Extreme service level. + STANDARD: Standard service level. + FLEX: Flex service level. + """ + SERVICE_LEVEL_UNSPECIFIED = 0 + PREMIUM = 1 + EXTREME = 2 + STANDARD = 3 + FLEX = 4 + + supportedServiceLevels = _messages.EnumField('SupportedServiceLevelsValueListEntryValuesEnum', 1, repeated=True) + + class MonthlySchedule(_messages.Message): r"""Make a snapshot once a month e.g. at 2nd 04:00, 7th 05:20, 24th 23:50 @@ -2401,12 +2431,15 @@ class StoragePool(_messages.Message): projects/{project}/global/networks/{network} psaRange: Optional. This field is not implemented. The values provided in this field are ignored. + replicaZone: Optional. Specifies the replica zone for regional + storagePool. serviceLevel: Required. Service level of the storage pool state: Output only. State of the storage pool stateDetails: Output only. State details of the storage pool volumeCapacityGib: Output only. Allocated size of all volumes in GIB in the storage pool volumeCount: Output only. Volume count of the storage pool + zone: Optional. Specifies the active zone for regional storagePool. """ class EncryptionTypeValueValuesEnum(_messages.Enum): @@ -2497,11 +2530,13 @@ class AdditionalProperty(_messages.Message): name = _messages.StringField(11) network = _messages.StringField(12) psaRange = _messages.StringField(13) - serviceLevel = _messages.EnumField('ServiceLevelValueValuesEnum', 14) - state = _messages.EnumField('StateValueValuesEnum', 15) - stateDetails = _messages.StringField(16) - volumeCapacityGib = _messages.IntegerField(17) - volumeCount = _messages.IntegerField(18, variant=_messages.Variant.INT32) + replicaZone = _messages.StringField(14) + serviceLevel = _messages.EnumField('ServiceLevelValueValuesEnum', 15) + state = _messages.EnumField('StateValueValuesEnum', 16) + stateDetails = _messages.StringField(17) + volumeCapacityGib = _messages.IntegerField(18) + volumeCount = _messages.IntegerField(19, variant=_messages.Variant.INT32) + zone = _messages.StringField(20) class SwitchActiveReplicaZoneRequest(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1beta1/netapp_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1beta1/netapp_v1beta1_messages.py index 9c3eb6939c..946f2aa416 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1beta1/netapp_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/netapp/v1beta1/netapp_v1beta1_messages.py @@ -825,6 +825,36 @@ class AdditionalProperty(_messages.Message): name = _messages.StringField(5) +class LocationMetadata(_messages.Message): + r"""Metadata for a given google.cloud.location.Location. + + Enums: + SupportedServiceLevelsValueListEntryValuesEnum: + + Fields: + supportedServiceLevels: Output only. Supported service levels in a + location. + """ + + class SupportedServiceLevelsValueListEntryValuesEnum(_messages.Enum): + r"""SupportedServiceLevelsValueListEntryValuesEnum enum type. + + Values: + SERVICE_LEVEL_UNSPECIFIED: Unspecified service level. + PREMIUM: Premium service level. + EXTREME: Extreme service level. + STANDARD: Standard service level. + FLEX: Flex service level. + """ + SERVICE_LEVEL_UNSPECIFIED = 0 + PREMIUM = 1 + EXTREME = 2 + STANDARD = 3 + FLEX = 4 + + supportedServiceLevels = _messages.EnumField('SupportedServiceLevelsValueListEntryValuesEnum', 1, repeated=True) + + class MonthlySchedule(_messages.Message): r"""Make a snapshot once a month e.g. at 2nd 04:00, 7th 05:20, 24th 23:50 @@ -2401,12 +2431,15 @@ class StoragePool(_messages.Message): projects/{project}/global/networks/{network} psaRange: Optional. This field is not implemented. The values provided in this field are ignored. + replicaZone: Optional. Specifies the replica zone for regional + storagePool. serviceLevel: Required. Service level of the storage pool state: Output only. State of the storage pool stateDetails: Output only. State details of the storage pool volumeCapacityGib: Output only. Allocated size of all volumes in GIB in the storage pool volumeCount: Output only. Volume count of the storage pool + zone: Optional. Specifies the active zone for regional storagePool. """ class EncryptionTypeValueValuesEnum(_messages.Enum): @@ -2497,11 +2530,13 @@ class AdditionalProperty(_messages.Message): name = _messages.StringField(11) network = _messages.StringField(12) psaRange = _messages.StringField(13) - serviceLevel = _messages.EnumField('ServiceLevelValueValuesEnum', 14) - state = _messages.EnumField('StateValueValuesEnum', 15) - stateDetails = _messages.StringField(16) - volumeCapacityGib = _messages.IntegerField(17) - volumeCount = _messages.IntegerField(18, variant=_messages.Variant.INT32) + replicaZone = _messages.StringField(14) + serviceLevel = _messages.EnumField('ServiceLevelValueValuesEnum', 15) + state = _messages.EnumField('StateValueValuesEnum', 16) + stateDetails = _messages.StringField(17) + volumeCapacityGib = _messages.IntegerField(18) + volumeCount = _messages.IntegerField(19, variant=_messages.Variant.INT32) + zone = _messages.StringField(20) class SwitchActiveReplicaZoneRequest(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1/networkconnectivity_v1_client.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1/networkconnectivity_v1_client.py index 9ae1098083..8e016e613c 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1/networkconnectivity_v1_client.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1/networkconnectivity_v1_client.py @@ -66,60 +66,6 @@ def __init__(self, client): self._upload_configs = { } - def Create(self, request, global_params=None): - r"""Create a Group (e.g. creating default group during hub creation). - - Args: - request: (NetworkconnectivityProjectsLocationsGlobalHubsGroupsCreateRequest) input message - global_params: (StandardQueryParameters, default: None) global arguments - Returns: - (GoogleLongrunningOperation) The response message. - """ - config = self.GetMethodConfig('Create') - return self._RunMethod( - config, request, global_params=global_params) - - Create.method_config = lambda: base_api.ApiMethodInfo( - flat_path='v1/projects/{projectsId}/locations/global/hubs/{hubsId}/groups', - http_method='POST', - method_id='networkconnectivity.projects.locations.global.hubs.groups.create', - ordered_params=['parent'], - path_params=['parent'], - query_params=['groupId', 'requestId'], - relative_path='v1/{+parent}/groups', - request_field='group', - request_type_name='NetworkconnectivityProjectsLocationsGlobalHubsGroupsCreateRequest', - response_type_name='GoogleLongrunningOperation', - supports_download=False, - ) - - def Delete(self, request, global_params=None): - r"""Delete a Group. - - Args: - request: (NetworkconnectivityProjectsLocationsGlobalHubsGroupsDeleteRequest) input message - global_params: (StandardQueryParameters, default: None) global arguments - Returns: - (GoogleLongrunningOperation) The response message. - """ - config = self.GetMethodConfig('Delete') - return self._RunMethod( - config, request, global_params=global_params) - - Delete.method_config = lambda: base_api.ApiMethodInfo( - flat_path='v1/projects/{projectsId}/locations/global/hubs/{hubsId}/groups/{groupsId}', - http_method='DELETE', - method_id='networkconnectivity.projects.locations.global.hubs.groups.delete', - ordered_params=['name'], - path_params=['name'], - query_params=['requestId'], - relative_path='v1/{+name}', - request_field='', - request_type_name='NetworkconnectivityProjectsLocationsGlobalHubsGroupsDeleteRequest', - response_type_name='GoogleLongrunningOperation', - supports_download=False, - ) - def Get(self, request, global_params=None): r"""Gets details about a Network Connectivity Center group. diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1/networkconnectivity_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1/networkconnectivity_v1_messages.py index c4c4240407..3a647bda02 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1/networkconnectivity_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1/networkconnectivity_v1_messages.py @@ -307,6 +307,8 @@ class ConsumerPscConnection(_messages.Message): network: The consumer network whose PSC forwarding rule is connected to the service attachments in this service connection map. Note that the network could be on a different project (shared VPC). + producerInstanceId: Immutable. An immutable identifier for the producer + instance. project: The consumer project whose PSC forwarding rule is connected to the service attachments in this service connection map. pscConnectionId: The PSC connection id of the PSC forwarding rule @@ -358,11 +360,12 @@ class StateValueValuesEnum(_messages.Enum): gceOperation = _messages.StringField(5) ip = _messages.StringField(6) network = _messages.StringField(7) - project = _messages.StringField(8) - pscConnectionId = _messages.StringField(9) - selectedSubnetwork = _messages.StringField(10) - serviceAttachmentUri = _messages.StringField(11) - state = _messages.EnumField('StateValueValuesEnum', 12) + producerInstanceId = _messages.StringField(8) + project = _messages.StringField(9) + pscConnectionId = _messages.StringField(10) + selectedSubnetwork = _messages.StringField(11) + serviceAttachmentUri = _messages.StringField(12) + state = _messages.EnumField('StateValueValuesEnum', 13) class DeactivateSpokeRequest(_messages.Message): @@ -902,11 +905,9 @@ class PolicyModeValueValuesEnum(_messages.Enum): POLICY_MODE_UNSPECIFIED: Policy mode is unspecified. It defaults to PRESET with preset_topology = MESH. PRESET: Hub uses one of the preset topologies. - CUSTOM: Hub can freely specify the topology using groups and policy. """ POLICY_MODE_UNSPECIFIED = 0 PRESET = 1 - CUSTOM = 2 class PresetTopologyValueValuesEnum(_messages.Enum): r"""Optional. The topology implemented in this hub. Currently, this field @@ -918,8 +919,6 @@ class PresetTopologyValueValuesEnum(_messages.Enum): Values: PRESET_TOPOLOGY_UNSPECIFIED: Preset topology is unspecified. When policy_mode = PRESET, it defaults to MESH. - PRESET_TOPOLOGY_DISALLOWED: No preset topology is allowed. It is used - when policy_mode is `custom`. MESH: Mesh topology is implemented. Group `default` is automatically created. All spokes in the hub are added to group `default`. STAR: Star topology is implemented. Two groups, `center` and `edge`, are @@ -927,9 +926,8 @@ class PresetTopologyValueValuesEnum(_messages.Enum): of the groups during creation. """ PRESET_TOPOLOGY_UNSPECIFIED = 0 - PRESET_TOPOLOGY_DISALLOWED = 1 - MESH = 2 - STAR = 3 + MESH = 1 + STAR = 2 class StateValueValuesEnum(_messages.Enum): r"""Output only. The current lifecycle state of this hub. @@ -1189,6 +1187,23 @@ class LinkedInterconnectAttachments(_messages.Message): vpcNetwork = _messages.StringField(3) +class LinkedPrivateServicesAccess(_messages.Message): + r"""Next ID: 4 + + Fields: + excludeExportRanges: Optional. IP ranges encompassing the subnets to be + excluded from peering. + includeExportRanges: Optional. IP ranges allowed to be included from + peering. + network: Immutable. The URI of the home VPC uri where private services + access is peered with. + """ + + excludeExportRanges = _messages.StringField(1, repeated=True) + includeExportRanges = _messages.StringField(2, repeated=True) + network = _messages.StringField(3) + + class LinkedRouterApplianceInstances(_messages.Message): r"""A collection of router appliance instances. If you configure multiple router appliance instances to receive data from the same set of sites @@ -1687,58 +1702,6 @@ class NetworkconnectivityProjectsLocationsGlobalHubsGetRequest(_messages.Message name = _messages.StringField(1, required=True) -class NetworkconnectivityProjectsLocationsGlobalHubsGroupsCreateRequest(_messages.Message): - r"""A NetworkconnectivityProjectsLocationsGlobalHubsGroupsCreateRequest - object. - - Fields: - group: A Group resource to be passed as the request body. - groupId: Required. A unique identifier for the group - parent: Required. The parent resource. - requestId: 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). - """ - - group = _messages.MessageField('Group', 1) - groupId = _messages.StringField(2) - parent = _messages.StringField(3, required=True) - requestId = _messages.StringField(4) - - -class NetworkconnectivityProjectsLocationsGlobalHubsGroupsDeleteRequest(_messages.Message): - r"""A NetworkconnectivityProjectsLocationsGlobalHubsGroupsDeleteRequest - object. - - Fields: - name: Required. The name of the group to delete. - requestId: 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 = _messages.StringField(1, required=True) - requestId = _messages.StringField(2) - - class NetworkconnectivityProjectsLocationsGlobalHubsGroupsGetIamPolicyRequest(_messages.Message): r"""A NetworkconnectivityProjectsLocationsGlobalHubsGroupsGetIamPolicyRequest @@ -3607,6 +3570,8 @@ class PscConnection(_messages.Message): errorType: The error type indicates whether the error is consumer facing, producer facing or system internal. gceOperation: The last Compute Engine operation to setup PSC connection. + producerInstanceId: Immutable. An immutable identifier for the producer + instance. pscConnectionId: The PSC connection id of the PSC forwarding rule. selectedSubnetwork: Output only. The URI of the subnetwork selected to allocate IP address for this connection. @@ -3653,9 +3618,10 @@ class StateValueValuesEnum(_messages.Enum): errorInfo = _messages.MessageField('GoogleRpcErrorInfo', 5) errorType = _messages.EnumField('ErrorTypeValueValuesEnum', 6) gceOperation = _messages.StringField(7) - pscConnectionId = _messages.StringField(8) - selectedSubnetwork = _messages.StringField(9) - state = _messages.EnumField('StateValueValuesEnum', 10) + producerInstanceId = _messages.StringField(8) + pscConnectionId = _messages.StringField(9) + selectedSubnetwork = _messages.StringField(10) + state = _messages.EnumField('StateValueValuesEnum', 11) class RegionalEndpoint(_messages.Message): @@ -3934,9 +3900,6 @@ class RouteTable(_messages.Message): Fields: createTime: Output only. The time the route table was created. description: An optional description of the route table. - group: Output only. The name of the group the route table is associated - with. Groups use the following form: `projects/{project_number}/location - s/global/hubs/{hub}/groups/{group_name}` labels: Optional labels in key-value pair format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating- @@ -4009,12 +3972,11 @@ class AdditionalProperty(_messages.Message): createTime = _messages.StringField(1) description = _messages.StringField(2) - group = _messages.StringField(3) - labels = _messages.MessageField('LabelsValue', 4) - name = _messages.StringField(5) - state = _messages.EnumField('StateValueValuesEnum', 6) - uid = _messages.StringField(7) - updateTime = _messages.StringField(8) + labels = _messages.MessageField('LabelsValue', 3) + name = _messages.StringField(4) + state = _messages.EnumField('StateValueValuesEnum', 5) + uid = _messages.StringField(6) + updateTime = _messages.StringField(7) class RouterApplianceInstance(_messages.Message): @@ -4387,6 +4349,8 @@ class Spoke(_messages.Message): managing-labels#requirements). linkedInterconnectAttachments: VLAN attachments that are associated with the spoke. + linkedPrivateServicesAccess: Optional. The linked private service access + that is associated with the spoke. linkedRouterApplianceInstances: Router appliance instances that are associated with the spoke. linkedVpcNetwork: Optional. VPC network that is associated with the spoke. @@ -4414,12 +4378,14 @@ class SpokeTypeValueValuesEnum(_messages.Enum): INTERCONNECT_ATTACHMENT: Spokes associated with VLAN attachments. ROUTER_APPLIANCE: Spokes associated with router appliance instances. VPC_NETWORK: Spokes associated with VPC networks. + PRIVATE_SERVICES_ACCESS: Spokes that are private services access. """ SPOKE_TYPE_UNSPECIFIED = 0 VPN_TUNNEL = 1 INTERCONNECT_ATTACHMENT = 2 ROUTER_APPLIANCE = 3 VPC_NETWORK = 4 + PRIVATE_SERVICES_ACCESS = 5 class StateValueValuesEnum(_messages.Enum): r"""Output only. The current lifecycle state of this spoke. @@ -4482,15 +4448,16 @@ class AdditionalProperty(_messages.Message): hub = _messages.StringField(4) labels = _messages.MessageField('LabelsValue', 5) linkedInterconnectAttachments = _messages.MessageField('LinkedInterconnectAttachments', 6) - linkedRouterApplianceInstances = _messages.MessageField('LinkedRouterApplianceInstances', 7) - linkedVpcNetwork = _messages.MessageField('LinkedVpcNetwork', 8) - linkedVpnTunnels = _messages.MessageField('LinkedVpnTunnels', 9) - name = _messages.StringField(10) - reasons = _messages.MessageField('StateReason', 11, repeated=True) - spokeType = _messages.EnumField('SpokeTypeValueValuesEnum', 12) - state = _messages.EnumField('StateValueValuesEnum', 13) - uniqueId = _messages.StringField(14) - updateTime = _messages.StringField(15) + linkedPrivateServicesAccess = _messages.MessageField('LinkedPrivateServicesAccess', 7) + linkedRouterApplianceInstances = _messages.MessageField('LinkedRouterApplianceInstances', 8) + linkedVpcNetwork = _messages.MessageField('LinkedVpcNetwork', 9) + linkedVpnTunnels = _messages.MessageField('LinkedVpnTunnels', 10) + name = _messages.StringField(11) + reasons = _messages.MessageField('StateReason', 12, repeated=True) + spokeType = _messages.EnumField('SpokeTypeValueValuesEnum', 13) + state = _messages.EnumField('StateValueValuesEnum', 14) + uniqueId = _messages.StringField(15) + updateTime = _messages.StringField(16) class SpokeStateCount(_messages.Message): @@ -4615,12 +4582,14 @@ class SpokeTypeValueValuesEnum(_messages.Enum): INTERCONNECT_ATTACHMENT: Spokes associated with VLAN attachments. ROUTER_APPLIANCE: Spokes associated with router appliance instances. VPC_NETWORK: Spokes associated with VPC networks. + PRIVATE_SERVICES_ACCESS: Spokes that are private services access. """ SPOKE_TYPE_UNSPECIFIED = 0 VPN_TUNNEL = 1 INTERCONNECT_ATTACHMENT = 2 ROUTER_APPLIANCE = 3 VPC_NETWORK = 4 + PRIVATE_SERVICES_ACCESS = 5 count = _messages.IntegerField(1) spokeType = _messages.EnumField('SpokeTypeValueValuesEnum', 2) @@ -4841,3 +4810,17 @@ class AdditionalProperty(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsGlobalHubsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsGlobalHubsGroupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsGlobalPolicyBasedRoutesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsServiceClassesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsServiceConnectionMapsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsServiceConnectionPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsSpokesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1alpha1/networkconnectivity_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1alpha1/networkconnectivity_v1alpha1_messages.py index c349139a71..5bfdc7e884 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1alpha1/networkconnectivity_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1alpha1/networkconnectivity_v1alpha1_messages.py @@ -1667,3 +1667,9 @@ class TestIamPermissionsResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsGlobalHubsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsInternalRangesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsSpokesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1beta/networkconnectivity_v1beta_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1beta/networkconnectivity_v1beta_messages.py index a5900b5f1b..cf6658ceef 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1beta/networkconnectivity_v1beta_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkconnectivity/v1beta/networkconnectivity_v1beta_messages.py @@ -3196,3 +3196,9 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsGlobalHubsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsGlobalHubsGroupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkconnectivityProjectsLocationsSpokesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1/networkmanagement_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1/networkmanagement_v1_messages.py index 7bcd908508..12dfd37ad8 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1/networkmanagement_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1/networkmanagement_v1_messages.py @@ -2885,3 +2885,5 @@ class RoutingTypeValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworkmanagementProjectsLocationsGlobalConnectivityTestsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1alpha1/networkmanagement_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1alpha1/networkmanagement_v1alpha1_messages.py index 8aee661aaf..adc090ef9f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1alpha1/networkmanagement_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1alpha1/networkmanagement_v1alpha1_messages.py @@ -3578,3 +3578,5 @@ class RoutingTypeValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworkmanagementProjectsLocationsSimulationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1beta1/networkmanagement_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1beta1/networkmanagement_v1beta1_messages.py index 7ca33954e9..3052784a43 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1beta1/networkmanagement_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkmanagement/v1beta1/networkmanagement_v1beta1_messages.py @@ -3135,3 +3135,5 @@ class RoutingTypeValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworkmanagementProjectsLocationsGlobalConnectivityTestsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1/networksecurity_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1/networksecurity_v1_messages.py index 12bcc0efe2..e9dfd40ba4 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1/networksecurity_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1/networksecurity_v1_messages.py @@ -5644,3 +5644,11 @@ class WorkloadContextSelectorMetadataSelector(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsAddressGroupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsAuthorizationPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsClientTlsPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsServerTlsPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1alpha1/networksecurity_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1alpha1/networksecurity_v1alpha1_messages.py index 042ca729a1..d2bbf23e06 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1alpha1/networksecurity_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1alpha1/networksecurity_v1alpha1_messages.py @@ -6479,3 +6479,11 @@ class ValidationCA(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsAddressGroupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsAuthorizationPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsClientTlsPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsServerTlsPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1beta1/networksecurity_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1beta1/networksecurity_v1beta1_messages.py index b044df1109..45f08e2417 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1beta1/networksecurity_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networksecurity/v1beta1/networksecurity_v1beta1_messages.py @@ -5818,3 +5818,11 @@ class WorkloadContextSelectorMetadataSelector(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsAddressGroupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsAuthorizationPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsClientTlsPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworksecurityProjectsLocationsServerTlsPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1/networkservices_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1/networkservices_v1_messages.py index ab12715f3d..b0b29663f3 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1/networkservices_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1/networkservices_v1_messages.py @@ -8061,3 +8061,19 @@ class AdditionalProperty(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsEdgeCacheKeysetsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsEdgeCacheOriginsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsEdgeCacheServicesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsEndpointPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsMeshesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsServiceBindingsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsServiceLbPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1alpha1/networkservices_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1alpha1/networkservices_v1alpha1_messages.py index 4939268503..1291a7cb0a 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1alpha1/networkservices_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1alpha1/networkservices_v1alpha1_messages.py @@ -9339,3 +9339,31 @@ class AdditionalProperty(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsEdgeCacheKeysetsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsEdgeCacheOriginsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsEdgeCacheServicesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsEndpointPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsGlobalServiceObserverGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsGrpcRoutesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsHttpFiltersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsHttpRoutesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsMeshesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsObservabilityPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsServiceBindingsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsServiceLbPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsTcpRoutesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1beta1/networkservices_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1beta1/networkservices_v1beta1_messages.py index c450be3230..24502e3b31 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1beta1/networkservices_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/networkservices/v1beta1/networkservices_v1beta1_messages.py @@ -6787,3 +6787,13 @@ class WorkloadContextSelectorMetadataSelector(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsEndpointPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsGatewaysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsMeshesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsServiceBindingsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NetworkservicesProjectsLocationsServiceLbPoliciesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v1/notebooks_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v1/notebooks_v1_messages.py index fba8f94879..b3bd983a35 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v1/notebooks_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v1/notebooks_v1_messages.py @@ -4315,3 +4315,7 @@ class VmImage(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NotebooksProjectsLocationsInstancesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + NotebooksProjectsLocationsRuntimesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v1beta1/notebooks_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v1beta1/notebooks_v1beta1_messages.py index 755dedba8b..73f4ecd5f3 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v1beta1/notebooks_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v1beta1/notebooks_v1beta1_messages.py @@ -1674,3 +1674,5 @@ class VmImage(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NotebooksProjectsLocationsInstancesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v2/notebooks_v2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v2/notebooks_v2_messages.py index b856fd6169..b96fa73812 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v2/notebooks_v2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/notebooks/v2/notebooks_v2_messages.py @@ -1852,3 +1852,5 @@ class VmImage(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + NotebooksProjectsLocationsInstancesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ondemandscanning/v1/ondemandscanning_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ondemandscanning/v1/ondemandscanning_v1_messages.py index 74045d1008..41adbaddbd 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ondemandscanning/v1/ondemandscanning_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ondemandscanning/v1/ondemandscanning_v1_messages.py @@ -655,10 +655,30 @@ class ComplianceOccurrence(_messages.Message): Fields: nonComplianceReason: A string attribute. nonCompliantFiles: A NonCompliantFile attribute. + version: The OS and config version the benchmark was run on. """ nonComplianceReason = _messages.StringField(1) nonCompliantFiles = _messages.MessageField('NonCompliantFile', 2, repeated=True) + version = _messages.MessageField('ComplianceVersion', 3) + + +class ComplianceVersion(_messages.Message): + r"""Describes the CIS benchmark version that is applicable to a given OS and + os version. + + Fields: + benchmarkDocument: The name of the document that defines this benchmark, + e.g. "CIS Container-Optimized OS". + cpeUri: The CPE URI (https://cpe.mitre.org/specification/) this benchmark + is applicable to. + version: The version of the benchmark. This is set to the version of the + OS-specific CIS document the benchmark is defined in. + """ + + benchmarkDocument = _messages.StringField(1) + cpeUri = _messages.StringField(2) + version = _messages.StringField(3) class DSSEAttestationOccurrence(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ondemandscanning/v1beta1/ondemandscanning_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ondemandscanning/v1beta1/ondemandscanning_v1beta1_messages.py index f9b2bf51b2..e565bdf699 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ondemandscanning/v1beta1/ondemandscanning_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/ondemandscanning/v1beta1/ondemandscanning_v1beta1_messages.py @@ -651,10 +651,30 @@ class ComplianceOccurrence(_messages.Message): Fields: nonComplianceReason: A string attribute. nonCompliantFiles: A NonCompliantFile attribute. + version: The OS and config version the benchmark was run on. """ nonComplianceReason = _messages.StringField(1) nonCompliantFiles = _messages.MessageField('NonCompliantFile', 2, repeated=True) + version = _messages.MessageField('ComplianceVersion', 3) + + +class ComplianceVersion(_messages.Message): + r"""Describes the CIS benchmark version that is applicable to a given OS and + os version. + + Fields: + benchmarkDocument: The name of the document that defines this benchmark, + e.g. "CIS Container-Optimized OS". + cpeUri: The CPE URI (https://cpe.mitre.org/specification/) this benchmark + is applicable to. + version: The version of the benchmark. This is set to the version of the + OS-specific CIS document the benchmark is defined in. + """ + + benchmarkDocument = _messages.StringField(1) + cpeUri = _messages.StringField(2) + version = _messages.StringField(3) class DSSEAttestationOccurrence(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/policytroubleshooter/v3alpha/policytroubleshooter_v3alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/policytroubleshooter/v3alpha/policytroubleshooter_v3alpha_messages.py index 1496601e5c..ac4ee030b3 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/policytroubleshooter/v3alpha/policytroubleshooter_v3alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/policytroubleshooter/v3alpha/policytroubleshooter_v3alpha_messages.py @@ -3675,9 +3675,11 @@ class PolicyKindValueValuesEnum(_messages.Enum): Values: POLICY_KIND_UNSPECIFIED: Unspecified policy kind; Not a valid state PRINCIPAL_ACCESS_BOUNDARY: Principal access boundary policy kind + ACCESS: Access policy kind """ POLICY_KIND_UNSPECIFIED = 0 PRINCIPAL_ACCESS_BOUNDARY = 1 + ACCESS = 2 @encoding.MapUnrecognizedFields('additionalProperties') class AnnotationsValue(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/policytroubleshooter/v3beta/policytroubleshooter_v3beta_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/policytroubleshooter/v3beta/policytroubleshooter_v3beta_messages.py index 1d14e205d3..7e89651605 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/policytroubleshooter/v3beta/policytroubleshooter_v3beta_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/policytroubleshooter/v3beta/policytroubleshooter_v3beta_messages.py @@ -2728,9 +2728,11 @@ class PolicyKindValueValuesEnum(_messages.Enum): Values: POLICY_KIND_UNSPECIFIED: Unspecified policy kind; Not a valid state PRINCIPAL_ACCESS_BOUNDARY: Principal access boundary policy kind + ACCESS: Access policy kind """ POLICY_KIND_UNSPECIFIED = 0 PRINCIPAL_ACCESS_BOUNDARY = 1 + ACCESS = 2 @encoding.MapUnrecognizedFields('additionalProperties') class AnnotationsValue(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/privateca/v1/privateca_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/privateca/v1/privateca_v1_messages.py index 77ed4a61ab..da4a41241d 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/privateca/v1/privateca_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/privateca/v1/privateca_v1_messages.py @@ -3304,3 +3304,9 @@ class X509Parameters(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + PrivatecaProjectsLocationsCaPoolsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + PrivatecaProjectsLocationsCaPoolsCertificateAuthoritiesCertificateRevocationListsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + PrivatecaProjectsLocationsCertificateTemplatesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/pubsub/v1/pubsub_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/pubsub/v1/pubsub_v1_messages.py index d33d85b805..93bcbc1e7c 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/pubsub/v1/pubsub_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/pubsub/v1/pubsub_v1_messages.py @@ -2667,3 +2667,11 @@ class ValidateSchemaResponse(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + PubsubProjectsSchemasGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + PubsubProjectsSnapshotsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + PubsubProjectsSubscriptionsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + PubsubProjectsTopicsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1/recommender_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1/recommender_v1_messages.py index 59df01fff8..3f1a8a2cdf 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1/recommender_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1/recommender_v1_messages.py @@ -291,8 +291,8 @@ class GoogleCloudRecommenderV1InsightTypeConfig(_messages.Message): when updating. insightTypeGenerationConfig: InsightTypeGenerationConfig which configures the generation of insights for this insight type. - name: Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations - /[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config + name: Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBE + R]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config revisionId: Output only. Immutable. The revision ID of the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string. @@ -983,8 +983,8 @@ class GoogleCloudRecommenderV1RecommenderConfig(_messages.Message): used in user interfaces. etag: Fingerprint of the RecommenderConfig. Provides optimistic locking when updating. - name: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/ - [LOCATION]/recommenders/[RECOMMENDER_ID]/config + name: Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER + ]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config recommenderGenerationConfig: RecommenderGenerationConfig which configures the Generation of recommendations for this recommender. revisionId: Output only. Immutable. The revision ID of the config. A new @@ -1311,8 +1311,8 @@ class RecommenderBillingAccountsLocationsInsightTypesUpdateConfigRequest(_messag googleCloudRecommenderV1InsightTypeConfig: A GoogleCloudRecommenderV1InsightTypeConfig resource to be passed as the request body. - name: Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations - /[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config + name: Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBE + R]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -1463,8 +1463,8 @@ class RecommenderBillingAccountsLocationsRecommendersUpdateConfigRequest(_messag googleCloudRecommenderV1RecommenderConfig: A GoogleCloudRecommenderV1RecommenderConfig resource to be passed as the request body. - name: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/ - [LOCATION]/recommenders/[RECOMMENDER_ID]/config + name: Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER + ]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -1749,8 +1749,8 @@ class RecommenderOrganizationsLocationsInsightTypesUpdateConfigRequest(_messages googleCloudRecommenderV1InsightTypeConfig: A GoogleCloudRecommenderV1InsightTypeConfig resource to be passed as the request body. - name: Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations - /[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config + name: Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBE + R]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -1899,8 +1899,8 @@ class RecommenderOrganizationsLocationsRecommendersUpdateConfigRequest(_messages googleCloudRecommenderV1RecommenderConfig: A GoogleCloudRecommenderV1RecommenderConfig resource to be passed as the request body. - name: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/ - [LOCATION]/recommenders/[RECOMMENDER_ID]/config + name: Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER + ]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -2000,8 +2000,8 @@ class RecommenderProjectsLocationsInsightTypesUpdateConfigRequest(_messages.Mess googleCloudRecommenderV1InsightTypeConfig: A GoogleCloudRecommenderV1InsightTypeConfig resource to be passed as the request body. - name: Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations - /[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config + name: Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBE + R]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -2152,8 +2152,8 @@ class RecommenderProjectsLocationsRecommendersUpdateConfigRequest(_messages.Mess googleCloudRecommenderV1RecommenderConfig: A GoogleCloudRecommenderV1RecommenderConfig resource to be passed as the request body. - name: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/ - [LOCATION]/recommenders/[RECOMMENDER_ID]/config + name: Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER + ]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1alpha2/recommender_v1alpha2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1alpha2/recommender_v1alpha2_messages.py index dcc6b9bbb6..412e0a6923 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1alpha2/recommender_v1alpha2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1alpha2/recommender_v1alpha2_messages.py @@ -1053,8 +1053,8 @@ class GoogleCloudRecommenderV1alpha2RecommenderConfig(_messages.Message): Fields: etag: Fingerprint of the RecommenderConfig. Provides optimistic locking when updating. - name: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/ - [LOCATION]/recommenders/[RECOMMENDER_ID]/config + name: Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER + ]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config recommenderGenerationConfig: RecommenderGenerationConfig which configures the Generation of recommendations for this recommender. revisionId: Output only. Immutable. The revision ID of the config. A new @@ -1327,7 +1327,7 @@ class RecommenderBillingAccountsLocationsInsightTypesInsightsMarkAcceptedRequest googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest: A GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest', 1) @@ -1343,7 +1343,7 @@ class RecommenderBillingAccountsLocationsInsightTypesInsightsMarkActiveRequest(_ googleCloudRecommenderV1alpha2MarkInsightActiveRequest: A GoogleCloudRecommenderV1alpha2MarkInsightActiveRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightActiveRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightActiveRequest', 1) @@ -1359,7 +1359,7 @@ class RecommenderBillingAccountsLocationsInsightTypesInsightsMarkDismissedReques googleCloudRecommenderV1alpha2MarkInsightDismissedRequest: A GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightDismissedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest', 1) @@ -1448,7 +1448,7 @@ class RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkActiveRe googleCloudRecommenderV1alpha2MarkRecommendationActiveRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationActiveRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationActiveRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationActiveRequest', 1) @@ -1463,7 +1463,7 @@ class RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkClaimedR googleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest', 1) @@ -1478,7 +1478,7 @@ class RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkDismisse googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest', 1) @@ -1493,7 +1493,7 @@ class RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkFailedRe googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest', 1) @@ -1508,7 +1508,7 @@ class RecommenderBillingAccountsLocationsRecommendersRecommendationsMarkSucceede googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest', 1) @@ -1573,7 +1573,7 @@ class RecommenderFoldersLocationsInsightTypesInsightsMarkAcceptedRequest(_messag googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest: A GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest', 1) @@ -1588,7 +1588,7 @@ class RecommenderFoldersLocationsInsightTypesInsightsMarkActiveRequest(_messages googleCloudRecommenderV1alpha2MarkInsightActiveRequest: A GoogleCloudRecommenderV1alpha2MarkInsightActiveRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightActiveRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightActiveRequest', 1) @@ -1603,7 +1603,7 @@ class RecommenderFoldersLocationsInsightTypesInsightsMarkDismissedRequest(_messa googleCloudRecommenderV1alpha2MarkInsightDismissedRequest: A GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightDismissedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest', 1) @@ -1691,7 +1691,7 @@ class RecommenderFoldersLocationsRecommendersRecommendationsMarkActiveRequest(_m googleCloudRecommenderV1alpha2MarkRecommendationActiveRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationActiveRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationActiveRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationActiveRequest', 1) @@ -1707,7 +1707,7 @@ class RecommenderFoldersLocationsRecommendersRecommendationsMarkClaimedRequest(_ googleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest', 1) @@ -1723,7 +1723,7 @@ class RecommenderFoldersLocationsRecommendersRecommendationsMarkDismissedRequest googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest', 1) @@ -1739,7 +1739,7 @@ class RecommenderFoldersLocationsRecommendersRecommendationsMarkFailedRequest(_m googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest', 1) @@ -1755,7 +1755,7 @@ class RecommenderFoldersLocationsRecommendersRecommendationsMarkSucceededRequest googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest', 1) @@ -1837,7 +1837,7 @@ class RecommenderOrganizationsLocationsInsightTypesInsightsMarkAcceptedRequest(_ googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest: A GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest', 1) @@ -1852,7 +1852,7 @@ class RecommenderOrganizationsLocationsInsightTypesInsightsMarkActiveRequest(_me googleCloudRecommenderV1alpha2MarkInsightActiveRequest: A GoogleCloudRecommenderV1alpha2MarkInsightActiveRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightActiveRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightActiveRequest', 1) @@ -1868,7 +1868,7 @@ class RecommenderOrganizationsLocationsInsightTypesInsightsMarkDismissedRequest( googleCloudRecommenderV1alpha2MarkInsightDismissedRequest: A GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightDismissedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest', 1) @@ -1969,7 +1969,7 @@ class RecommenderOrganizationsLocationsRecommendersRecommendationsMarkActiveRequ googleCloudRecommenderV1alpha2MarkRecommendationActiveRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationActiveRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationActiveRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationActiveRequest', 1) @@ -1984,7 +1984,7 @@ class RecommenderOrganizationsLocationsRecommendersRecommendationsMarkClaimedReq googleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest', 1) @@ -1999,7 +1999,7 @@ class RecommenderOrganizationsLocationsRecommendersRecommendationsMarkDismissedR googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest', 1) @@ -2014,7 +2014,7 @@ class RecommenderOrganizationsLocationsRecommendersRecommendationsMarkFailedRequ googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest', 1) @@ -2029,7 +2029,7 @@ class RecommenderOrganizationsLocationsRecommendersRecommendationsMarkSucceededR googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest', 1) @@ -2094,7 +2094,7 @@ class RecommenderProjectsLocationsInsightTypesInsightsMarkAcceptedRequest(_messa googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest: A GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightAcceptedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightAcceptedRequest', 1) @@ -2109,7 +2109,7 @@ class RecommenderProjectsLocationsInsightTypesInsightsMarkActiveRequest(_message googleCloudRecommenderV1alpha2MarkInsightActiveRequest: A GoogleCloudRecommenderV1alpha2MarkInsightActiveRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightActiveRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightActiveRequest', 1) @@ -2124,7 +2124,7 @@ class RecommenderProjectsLocationsInsightTypesInsightsMarkDismissedRequest(_mess googleCloudRecommenderV1alpha2MarkInsightDismissedRequest: A GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest resource to be passed as the request body. - name: Name of the insight. + name: Required. Name of the insight. """ googleCloudRecommenderV1alpha2MarkInsightDismissedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkInsightDismissedRequest', 1) @@ -2225,7 +2225,7 @@ class RecommenderProjectsLocationsRecommendersRecommendationsMarkActiveRequest(_ googleCloudRecommenderV1alpha2MarkRecommendationActiveRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationActiveRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationActiveRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationActiveRequest', 1) @@ -2241,7 +2241,7 @@ class RecommenderProjectsLocationsRecommendersRecommendationsMarkClaimedRequest( googleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationClaimedRequest', 1) @@ -2257,7 +2257,7 @@ class RecommenderProjectsLocationsRecommendersRecommendationsMarkDismissedReques googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationDismissedRequest', 1) @@ -2273,7 +2273,7 @@ class RecommenderProjectsLocationsRecommendersRecommendationsMarkFailedRequest(_ googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationFailedRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationFailedRequest', 1) @@ -2289,7 +2289,7 @@ class RecommenderProjectsLocationsRecommendersRecommendationsMarkSucceededReques googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest: A GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest resource to be passed as the request body. - name: Name of the recommendation. + name: Required. Name of the recommendation. """ googleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest = _messages.MessageField('GoogleCloudRecommenderV1alpha2MarkRecommendationSucceededRequest', 1) diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1beta1/recommender_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1beta1/recommender_v1beta1_messages.py index c4e324a975..885e655cf3 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1beta1/recommender_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/recommender/v1beta1/recommender_v1beta1_messages.py @@ -412,8 +412,8 @@ class GoogleCloudRecommenderV1beta1InsightTypeConfig(_messages.Message): when updating. insightTypeGenerationConfig: InsightTypeGenerationConfig which configures the generation of insights for this insight type. - name: Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations - /[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config + name: Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBE + R]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config revisionId: Output only. Immutable. The revision ID of the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string. @@ -1130,8 +1130,8 @@ class GoogleCloudRecommenderV1beta1RecommenderConfig(_messages.Message): used in user interfaces. etag: Fingerprint of the RecommenderConfig. Provides optimistic locking when updating. - name: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/ - [LOCATION]/recommenders/[RECOMMENDER_ID]/config + name: Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER + ]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config recommenderGenerationConfig: RecommenderGenerationConfig which configures the Generation of recommendations for this recommender. revisionId: Output only. Immutable. The revision ID of the config. A new @@ -1469,8 +1469,8 @@ class RecommenderBillingAccountsLocationsInsightTypesUpdateConfigRequest(_messag googleCloudRecommenderV1beta1InsightTypeConfig: A GoogleCloudRecommenderV1beta1InsightTypeConfig resource to be passed as the request body. - name: Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations - /[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config + name: Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBE + R]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -1641,8 +1641,8 @@ class RecommenderBillingAccountsLocationsRecommendersUpdateConfigRequest(_messag googleCloudRecommenderV1beta1RecommenderConfig: A GoogleCloudRecommenderV1beta1RecommenderConfig resource to be passed as the request body. - name: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/ - [LOCATION]/recommenders/[RECOMMENDER_ID]/config + name: Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER + ]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -1961,8 +1961,8 @@ class RecommenderOrganizationsLocationsInsightTypesUpdateConfigRequest(_messages googleCloudRecommenderV1beta1InsightTypeConfig: A GoogleCloudRecommenderV1beta1InsightTypeConfig resource to be passed as the request body. - name: Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations - /[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config + name: Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBE + R]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -2131,8 +2131,8 @@ class RecommenderOrganizationsLocationsRecommendersUpdateConfigRequest(_messages googleCloudRecommenderV1beta1RecommenderConfig: A GoogleCloudRecommenderV1beta1RecommenderConfig resource to be passed as the request body. - name: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/ - [LOCATION]/recommenders/[RECOMMENDER_ID]/config + name: Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER + ]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -2232,8 +2232,8 @@ class RecommenderProjectsLocationsInsightTypesUpdateConfigRequest(_messages.Mess googleCloudRecommenderV1beta1InsightTypeConfig: A GoogleCloudRecommenderV1beta1InsightTypeConfig resource to be passed as the request body. - name: Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations - /[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config + name: Identifier. Name of insight type config. Eg, projects/[PROJECT_NUMBE + R]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. @@ -2404,8 +2404,8 @@ class RecommenderProjectsLocationsRecommendersUpdateConfigRequest(_messages.Mess googleCloudRecommenderV1beta1RecommenderConfig: A GoogleCloudRecommenderV1beta1RecommenderConfig resource to be passed as the request body. - name: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/ - [LOCATION]/recommenders/[RECOMMENDER_ID]/config + name: Identifier. Name of recommender config. Eg, projects/[PROJECT_NUMBER + ]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config updateMask: The list of fields to be updated. validateOnly: If true, validate the request and preview the change, but do not actually update it. diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/remotebuildexecution/v1alpha/remotebuildexecution_v1alpha_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/remotebuildexecution/v1alpha/remotebuildexecution_v1alpha_messages.py index fb66762fc0..63052975fc 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/remotebuildexecution/v1alpha/remotebuildexecution_v1alpha_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/remotebuildexecution/v1alpha/remotebuildexecution_v1alpha_messages.py @@ -208,6 +208,14 @@ class BuildBazelRemoteExecutionV2Command(_messages.Message): what filesystems are mounted where) is defined by and specific to the implementation of the remote execution API. + Enums: + OutputDirectoryFormatValueValuesEnum: The format that the worker should + use to store the contents of output directories. In case this field is + set to a value that is not supported by the worker, the worker SHOULD + interpret this field as TREE_ONLY. The worker MAY store output + directories in formats that are a superset of what was requested (e.g., + interpreting DIRECTORY_ONLY as TREE_AND_DIRECTORY). + Fields: arguments: The arguments to the command. The first argument specifies the command to run, which may be either an absolute path, a path relative to @@ -250,6 +258,12 @@ class BuildBazelRemoteExecutionV2Command(_messages.Message): directories themselves) are created by the worker prior to execution, even if they are not explicitly part of the input root. DEPRECATED since 2.1: Use `output_paths` instead. + outputDirectoryFormat: The format that the worker should use to store the + contents of output directories. In case this field is set to a value + that is not supported by the worker, the worker SHOULD interpret this + field as TREE_ONLY. The worker MAY store output directories in formats + that are a superset of what was requested (e.g., interpreting + DIRECTORY_ONLY as TREE_AND_DIRECTORY). outputFiles: A list of the output files that the client expects to retrieve from the action. Only the listed files, as well as directories listed in `output_directories`, will be returned to the client as @@ -307,14 +321,37 @@ class BuildBazelRemoteExecutionV2Command(_messages.Message): tree. If it is left empty, then the action is run in the input root. """ + class OutputDirectoryFormatValueValuesEnum(_messages.Enum): + r"""The format that the worker should use to store the contents of output + directories. In case this field is set to a value that is not supported by + the worker, the worker SHOULD interpret this field as TREE_ONLY. The + worker MAY store output directories in formats that are a superset of what + was requested (e.g., interpreting DIRECTORY_ONLY as TREE_AND_DIRECTORY). + + Values: + TREE_ONLY: The client is only interested in receiving output directories + in the form of a single Tree object, using the `tree_digest` field. + DIRECTORY_ONLY: The client is only interested in receiving output + directories in the form of a hierarchy of separately stored Directory + objects, using the `root_directory_digest` field. + TREE_AND_DIRECTORY: The client is interested in receiving output + directories both in the form of a single Tree object and a hierarchy + of separately stored Directory objects, using both the `tree_digest` + and `root_directory_digest` fields. + """ + TREE_ONLY = 0 + DIRECTORY_ONLY = 1 + TREE_AND_DIRECTORY = 2 + arguments = _messages.StringField(1, repeated=True) environmentVariables = _messages.MessageField('BuildBazelRemoteExecutionV2CommandEnvironmentVariable', 2, repeated=True) outputDirectories = _messages.StringField(3, repeated=True) - outputFiles = _messages.StringField(4, repeated=True) - outputNodeProperties = _messages.StringField(5, repeated=True) - outputPaths = _messages.StringField(6, repeated=True) - platform = _messages.MessageField('BuildBazelRemoteExecutionV2Platform', 7) - workingDirectory = _messages.StringField(8) + outputDirectoryFormat = _messages.EnumField('OutputDirectoryFormatValueValuesEnum', 4) + outputFiles = _messages.StringField(5, repeated=True) + outputNodeProperties = _messages.StringField(6, repeated=True) + outputPaths = _messages.StringField(7, repeated=True) + platform = _messages.MessageField('BuildBazelRemoteExecutionV2Platform', 8) + workingDirectory = _messages.StringField(9) class BuildBazelRemoteExecutionV2CommandEnvironmentVariable(_messages.Message): @@ -357,8 +394,8 @@ class BuildBazelRemoteExecutionV2Digest(_messages.Message): concatenating two messages to merge them may produce duplicate fields. Fields: - hash: The hash. In the case of SHA-256, it will always be a lowercase hex - string exactly 64 characters long. + hash: The hash, represented as a lowercase hexadecimal string, padded with + leading zeroes up to the hash function length. sizeBytes: The size of the blob, in bytes. """ @@ -717,13 +754,18 @@ class BuildBazelRemoteExecutionV2OutputDirectory(_messages.Message): The path separator is a forward slash `/`. Since this is a relative path, it MUST NOT begin with a leading forward slash. The empty string value is allowed, and it denotes the entire working directory. + rootDirectoryDigest: The digest of the encoded Directory proto containing + the contents the directory's root. If both `tree_digest` and + `root_directory_digest` are set, this field MUST match the digest of the + root directory contained in the Tree message. treeDigest: The digest of the encoded Tree proto containing the directory's contents. """ isTopologicallySorted = _messages.BooleanField(1) path = _messages.StringField(2) - treeDigest = _messages.MessageField('BuildBazelRemoteExecutionV2Digest', 3) + rootDirectoryDigest = _messages.MessageField('BuildBazelRemoteExecutionV2Digest', 3) + treeDigest = _messages.MessageField('BuildBazelRemoteExecutionV2Digest', 4) class BuildBazelRemoteExecutionV2OutputFile(_messages.Message): @@ -1345,7 +1387,8 @@ class GoogleDevtoolsRemotebuildexecutionAdminV1alphaBackendIAMBinding(_messages. Fields: principal: Required. The IAM principal (i.e. twosync or twosync-src group) - this binding applies to. + this binding applies to. This should be prefixed with `group:`. Example + format: group:alphasource-foundry-team-policy@twosync.google.com role: Required. The RBE-managed IAM role this binding applies to. The set of eligible roles depends on which instance allowlist(s) the parent instance is a member of, specifically with regards to the diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v1/run_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v1/run_v1_messages.py index 1671e1516c..c3674d0b98 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v1/run_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v1/run_v1_messages.py @@ -5647,3 +5647,33 @@ class VolumeMount(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + RunNamespacesConfigurationsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunNamespacesDomainmappingsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunNamespacesExecutionsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunNamespacesJobsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunNamespacesRevisionsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunNamespacesRoutesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunNamespacesServicesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunNamespacesTasksListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsConfigurationsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsDomainmappingsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsJobsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsRevisionsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsRoutesListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsServicesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsServicesListRequest, 'continue_', 'continue') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v1alpha1/run_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v1alpha1/run_v1alpha1_messages.py index 9cd7b6bc6a..9271bda59f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v1alpha1/run_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v1alpha1/run_v1alpha1_messages.py @@ -2063,3 +2063,7 @@ class FXgafvValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + RunNamespacesDomainmappingsListRequest, 'continue_', 'continue') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsDomainmappingsListRequest, 'continue_', 'continue') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v2/run_v2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v2/run_v2_messages.py index 1ae5458b8f..02d0101282 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v2/run_v2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/run/v2/run_v2_messages.py @@ -5460,3 +5460,7 @@ class UtilStatusProto(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsJobsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + RunProjectsLocationsServicesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/runtimeconfig/v1beta1/runtimeconfig_v1beta1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/runtimeconfig/v1beta1/runtimeconfig_v1beta1_messages.py index 8b6b94abaf..45405a4f75 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/runtimeconfig/v1beta1/runtimeconfig_v1beta1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/runtimeconfig/v1beta1/runtimeconfig_v1beta1_messages.py @@ -1486,3 +1486,5 @@ class WatchVariableRequest(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + RuntimeconfigProjectsConfigsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sddc/v1alpha1/sddc_v1alpha1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sddc/v1alpha1/sddc_v1alpha1_messages.py index 942945d88a..7f2d661729 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sddc/v1alpha1/sddc_v1alpha1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sddc/v1alpha1/sddc_v1alpha1_messages.py @@ -3136,3 +3136,5 @@ class Vcenter(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + SddcProjectsLocationsClusterGroupsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/__init__.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/__init__.py new file mode 100644 index 0000000000..f437c623fd --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/__init__.py @@ -0,0 +1,7 @@ +"""Package marker file.""" + +from __future__ import absolute_import + +import pkgutil + +__path__ = pkgutil.extend_path(__path__, __name__) diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/resources.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/resources.py new file mode 100644 index 0000000000..46772b0954 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/resources.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- # +# Copyright 2023 Google LLC. All Rights Reserved. +# +# 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. +"""Resource definitions for Cloud Platform Apis generated from apitools.""" + +import enum + + +BASE_URL = 'https://seclm.googleapis.com/v1/' +DOCS_URL = 'https://cloud.google.com/security/ai' + + +class Collections(enum.Enum): + """Collections for all supported apis.""" + + PROJECTS = ( + 'projects', + 'projects/{projectsId}', + {}, + ['projectsId'], + True + ) + PROJECTS_LOCATIONS = ( + 'projects.locations', + '{+name}', + { + '': + 'projects/{projectsId}/locations/{locationsId}', + }, + ['name'], + True + ) + PROJECTS_LOCATIONS_OPERATIONS = ( + 'projects.locations.operations', + '{+name}', + { + '': + 'projects/{projectsId}/locations/{locationsId}/operations/' + '{operationsId}', + }, + ['name'], + True + ) + PROJECTS_LOCATIONS_WORKBENCHES = ( + 'projects.locations.workbenches', + '{+name}', + { + '': + 'projects/{projectsId}/locations/{locationsId}/workbenches/' + '{workbenchesId}', + }, + ['name'], + True + ) + + def __init__(self, collection_name, path, flat_paths, params, + enable_uri_parsing): + self.collection_name = collection_name + self.path = path + self.flat_paths = flat_paths + self.params = params + self.enable_uri_parsing = enable_uri_parsing diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/seclm_v1_client.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/seclm_v1_client.py new file mode 100644 index 0000000000..5dd3033861 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/seclm_v1_client.py @@ -0,0 +1,409 @@ +"""Generated client library for seclm version v1.""" +# NOTE: This file is autogenerated and should not be edited by hand. + +from __future__ import absolute_import + +from apitools.base.py import base_api +from googlecloudsdk.generated_clients.apis.seclm.v1 import seclm_v1_messages as messages + + +class SeclmV1(base_api.BaseApiClient): + """Generated client library for service seclm version v1.""" + + MESSAGES_MODULE = messages + BASE_URL = 'https://seclm.googleapis.com/' + MTLS_BASE_URL = 'https://seclm.mtls.googleapis.com/' + + _PACKAGE = 'seclm' + _SCOPES = ['https://www.googleapis.com/auth/cloud-platform'] + _VERSION = 'v1' + _CLIENT_ID = 'CLIENT_ID' + _CLIENT_SECRET = 'CLIENT_SECRET' + _USER_AGENT = 'google-cloud-sdk' + _CLIENT_CLASS_NAME = 'SeclmV1' + _URL_VERSION = 'v1' + _API_KEY = None + + def __init__(self, url='', credentials=None, + get_credentials=True, http=None, model=None, + log_request=False, log_response=False, + credentials_args=None, default_global_params=None, + additional_http_headers=None, response_encoding=None): + """Create a new seclm handle.""" + url = url or self.BASE_URL + super(SeclmV1, self).__init__( + url, credentials=credentials, + get_credentials=get_credentials, http=http, model=model, + log_request=log_request, log_response=log_response, + credentials_args=credentials_args, + default_global_params=default_global_params, + additional_http_headers=additional_http_headers, + response_encoding=response_encoding) + self.projects_locations_operations = self.ProjectsLocationsOperationsService(self) + self.projects_locations_workbenches = self.ProjectsLocationsWorkbenchesService(self) + self.projects_locations = self.ProjectsLocationsService(self) + self.projects = self.ProjectsService(self) + + class ProjectsLocationsOperationsService(base_api.BaseApiService): + """Service class for the projects_locations_operations resource.""" + + _NAME = 'projects_locations_operations' + + def __init__(self, client): + super(SeclmV1.ProjectsLocationsOperationsService, self).__init__(client) + self._upload_configs = { + } + + def Cancel(self, request, global_params=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`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`. + + Args: + request: (SeclmProjectsLocationsOperationsCancelRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (Empty) The response message. + """ + config = self.GetMethodConfig('Cancel') + return self._RunMethod( + config, request, global_params=global_params) + + Cancel.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel', + http_method='POST', + method_id='seclm.projects.locations.operations.cancel', + ordered_params=['name'], + path_params=['name'], + query_params=[], + relative_path='v1/{+name}:cancel', + request_field='cancelOperationRequest', + request_type_name='SeclmProjectsLocationsOperationsCancelRequest', + response_type_name='Empty', + supports_download=False, + ) + + def Delete(self, request, global_params=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: (SeclmProjectsLocationsOperationsDeleteRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (Empty) The response message. + """ + config = self.GetMethodConfig('Delete') + return self._RunMethod( + config, request, global_params=global_params) + + Delete.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}', + http_method='DELETE', + method_id='seclm.projects.locations.operations.delete', + ordered_params=['name'], + path_params=['name'], + query_params=[], + relative_path='v1/{+name}', + request_field='', + request_type_name='SeclmProjectsLocationsOperationsDeleteRequest', + response_type_name='Empty', + supports_download=False, + ) + + def Get(self, request, global_params=None): + r"""Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service. + + Args: + request: (SeclmProjectsLocationsOperationsGetRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (Operation) The response message. + """ + config = self.GetMethodConfig('Get') + return self._RunMethod( + config, request, global_params=global_params) + + Get.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}', + http_method='GET', + method_id='seclm.projects.locations.operations.get', + ordered_params=['name'], + path_params=['name'], + query_params=[], + relative_path='v1/{+name}', + request_field='', + request_type_name='SeclmProjectsLocationsOperationsGetRequest', + response_type_name='Operation', + supports_download=False, + ) + + def List(self, request, global_params=None): + r"""Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. + + Args: + request: (SeclmProjectsLocationsOperationsListRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (ListOperationsResponse) The response message. + """ + config = self.GetMethodConfig('List') + return self._RunMethod( + config, request, global_params=global_params) + + List.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/operations', + http_method='GET', + method_id='seclm.projects.locations.operations.list', + ordered_params=['name'], + path_params=['name'], + query_params=['filter', 'pageSize', 'pageToken'], + relative_path='v1/{+name}/operations', + request_field='', + request_type_name='SeclmProjectsLocationsOperationsListRequest', + response_type_name='ListOperationsResponse', + supports_download=False, + ) + + class ProjectsLocationsWorkbenchesService(base_api.BaseApiService): + """Service class for the projects_locations_workbenches resource.""" + + _NAME = 'projects_locations_workbenches' + + def __init__(self, client): + super(SeclmV1.ProjectsLocationsWorkbenchesService, self).__init__(client) + self._upload_configs = { + } + + def Create(self, request, global_params=None): + r"""Creates a new SecLM Workbench in a given project and location. + + Args: + request: (SeclmProjectsLocationsWorkbenchesCreateRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (Operation) The response message. + """ + config = self.GetMethodConfig('Create') + return self._RunMethod( + config, request, global_params=global_params) + + Create.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/workbenches', + http_method='POST', + method_id='seclm.projects.locations.workbenches.create', + ordered_params=['parent'], + path_params=['parent'], + query_params=['requestId', 'workbenchId'], + relative_path='v1/{+parent}/workbenches', + request_field='workbench', + request_type_name='SeclmProjectsLocationsWorkbenchesCreateRequest', + response_type_name='Operation', + supports_download=False, + ) + + def Delete(self, request, global_params=None): + r"""Deletes a single SecLM Workbench. + + Args: + request: (SeclmProjectsLocationsWorkbenchesDeleteRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (Operation) The response message. + """ + config = self.GetMethodConfig('Delete') + return self._RunMethod( + config, request, global_params=global_params) + + Delete.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/workbenches/{workbenchesId}', + http_method='DELETE', + method_id='seclm.projects.locations.workbenches.delete', + ordered_params=['name'], + path_params=['name'], + query_params=['requestId'], + relative_path='v1/{+name}', + request_field='', + request_type_name='SeclmProjectsLocationsWorkbenchesDeleteRequest', + response_type_name='Operation', + supports_download=False, + ) + + def Get(self, request, global_params=None): + r"""Gets details of a single SecLM Workbench. + + Args: + request: (SeclmProjectsLocationsWorkbenchesGetRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (Workbench) The response message. + """ + config = self.GetMethodConfig('Get') + return self._RunMethod( + config, request, global_params=global_params) + + Get.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/workbenches/{workbenchesId}', + http_method='GET', + method_id='seclm.projects.locations.workbenches.get', + ordered_params=['name'], + path_params=['name'], + query_params=[], + relative_path='v1/{+name}', + request_field='', + request_type_name='SeclmProjectsLocationsWorkbenchesGetRequest', + response_type_name='Workbench', + supports_download=False, + ) + + def List(self, request, global_params=None): + r"""Lists SecLM Workbenches in a given project and location. + + Args: + request: (SeclmProjectsLocationsWorkbenchesListRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (ListWorkbenchesResponse) The response message. + """ + config = self.GetMethodConfig('List') + return self._RunMethod( + config, request, global_params=global_params) + + List.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/workbenches', + http_method='GET', + method_id='seclm.projects.locations.workbenches.list', + ordered_params=['parent'], + path_params=['parent'], + query_params=['filter', 'orderBy', 'pageSize', 'pageToken'], + relative_path='v1/{+parent}/workbenches', + request_field='', + request_type_name='SeclmProjectsLocationsWorkbenchesListRequest', + response_type_name='ListWorkbenchesResponse', + supports_download=False, + ) + + def Patch(self, request, global_params=None): + r"""Updates the parameters of a single SecLM Workbench. + + Args: + request: (SeclmProjectsLocationsWorkbenchesPatchRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (Operation) The response message. + """ + config = self.GetMethodConfig('Patch') + return self._RunMethod( + config, request, global_params=global_params) + + Patch.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/workbenches/{workbenchesId}', + http_method='PATCH', + method_id='seclm.projects.locations.workbenches.patch', + ordered_params=['name'], + path_params=['name'], + query_params=['requestId', 'updateMask'], + relative_path='v1/{+name}', + request_field='workbench', + request_type_name='SeclmProjectsLocationsWorkbenchesPatchRequest', + response_type_name='Operation', + supports_download=False, + ) + + def Query(self, request, global_params=None): + r"""WorkbenchQuery is a custom pass-through verb that returns a single SecLM Workbench. + + Args: + request: (SeclmProjectsLocationsWorkbenchesQueryRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (WorkbenchQueryResponse) The response message. + """ + config = self.GetMethodConfig('Query') + return self._RunMethod( + config, request, global_params=global_params) + + Query.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}/workbenches/{workbenchesId}:query', + http_method='POST', + method_id='seclm.projects.locations.workbenches.query', + ordered_params=['name'], + path_params=['name'], + query_params=[], + relative_path='v1/{+name}:query', + request_field='workbenchQueryRequest', + request_type_name='SeclmProjectsLocationsWorkbenchesQueryRequest', + response_type_name='WorkbenchQueryResponse', + supports_download=False, + ) + + class ProjectsLocationsService(base_api.BaseApiService): + """Service class for the projects_locations resource.""" + + _NAME = 'projects_locations' + + def __init__(self, client): + super(SeclmV1.ProjectsLocationsService, self).__init__(client) + self._upload_configs = { + } + + def Get(self, request, global_params=None): + r"""Gets information about a location. + + Args: + request: (SeclmProjectsLocationsGetRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (Location) The response message. + """ + config = self.GetMethodConfig('Get') + return self._RunMethod( + config, request, global_params=global_params) + + Get.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations/{locationsId}', + http_method='GET', + method_id='seclm.projects.locations.get', + ordered_params=['name'], + path_params=['name'], + query_params=[], + relative_path='v1/{+name}', + request_field='', + request_type_name='SeclmProjectsLocationsGetRequest', + response_type_name='Location', + supports_download=False, + ) + + def List(self, request, global_params=None): + r"""Lists information about the supported locations for this service. + + Args: + request: (SeclmProjectsLocationsListRequest) input message + global_params: (StandardQueryParameters, default: None) global arguments + Returns: + (ListLocationsResponse) The response message. + """ + config = self.GetMethodConfig('List') + return self._RunMethod( + config, request, global_params=global_params) + + List.method_config = lambda: base_api.ApiMethodInfo( + flat_path='v1/projects/{projectsId}/locations', + http_method='GET', + method_id='seclm.projects.locations.list', + ordered_params=['name'], + path_params=['name'], + query_params=['filter', 'pageSize', 'pageToken'], + relative_path='v1/{+name}/locations', + request_field='', + request_type_name='SeclmProjectsLocationsListRequest', + response_type_name='ListLocationsResponse', + supports_download=False, + ) + + class ProjectsService(base_api.BaseApiService): + """Service class for the projects resource.""" + + _NAME = 'projects' + + def __init__(self, client): + super(SeclmV1.ProjectsService, self).__init__(client) + self._upload_configs = { + } diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/seclm_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/seclm_v1_messages.py new file mode 100644 index 0000000000..fba84cdf79 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/seclm/v1/seclm_v1_messages.py @@ -0,0 +1,908 @@ +"""Generated message classes for seclm version v1. + +""" +# NOTE: This file is autogenerated and should not be edited by hand. + +from __future__ import absolute_import + +from apitools.base.protorpclite import messages as _messages +from apitools.base.py import encoding +from apitools.base.py import extra_types + + +package = 'seclm' + + +class CancelOperationRequest(_messages.Message): + r"""The request message for Operations.CancelOperation.""" + + +class Candidate(_messages.Message): + r"""A response candidate generated from the model. + + Enums: + FinishReasonValueValuesEnum: Optional. Output only. The reason why the + model stopped generating tokens. If empty, the model has not stopped + generating the tokens. + + Fields: + citationMetadata: Output only. Citation information for model-generated + candidate. This field may be populated with recitation information for + any text included in the `content`. These are passages that are + "recited" from copyrighted material in the foundational LLM's training + data. + content: Output only. Generated content returned from the model. + finishReason: Optional. Output only. The reason why the model stopped + generating tokens. If empty, the model has not stopped generating the + tokens. + index: Output only. Index of the candidate in the list of candidates. + safetyRatings: List of ratings for the safety of a response candidate. + There is at most one rating per category. + tokenCount: Output only. Token count for this candidate. + """ + + class FinishReasonValueValuesEnum(_messages.Enum): + r"""Optional. Output only. The reason why the model stopped generating + tokens. If empty, the model has not stopped generating the tokens. + + Values: + FINISH_REASON_UNSPECIFIED: Default value. This value is unused. + STOP: Natural stop point of the model or provided stop sequence. + MAX_TOKENS: The maximum number of tokens as specified in the request was + reached. + SAFETY: The candidate content was flagged for safety reasons. + RECITATION: The candidate content was flagged for recitation reasons. + OTHER: Unknown reason. + """ + FINISH_REASON_UNSPECIFIED = 0 + STOP = 1 + MAX_TOKENS = 2 + SAFETY = 3 + RECITATION = 4 + OTHER = 5 + + citationMetadata = _messages.MessageField('CitationMetadata', 1) + content = _messages.MessageField('Content', 2) + finishReason = _messages.EnumField('FinishReasonValueValuesEnum', 3) + index = _messages.IntegerField(4, variant=_messages.Variant.INT32) + safetyRatings = _messages.MessageField('SafetyRating', 5, repeated=True) + tokenCount = _messages.IntegerField(6, variant=_messages.Variant.INT32) + + +class Citation(_messages.Message): + r"""Metadata of one citation. + + Fields: + endIndex: Index in the prediction output where the citation ends + (exclusive). Must be > start_index and < len(output). + license: License associated with this recitation. If present, it refers to + the license of the source of this citation. Possible licenses include + code licenses, e.g., mit license. + publicationDate: Publication date associated with this citation. If + present, it refers to the date at which the source of this citation was + published. Possible formats are YYYY, YYYY-MM, YYYY-MM-DD. + startIndex: Index in the prediction output where the citation starts + (inclusive). Must be >= 0 and < end_index. + title: Title associated with this citation. If present, it refers to the + title of the source of this citation. Possible titles include news + titles, book titles, etc. + url: URL associated with this citation. If present, this URL links to the + webpage of the source of this citation. Possible URLs include news + websites, GitHub repos, etc. + """ + + endIndex = _messages.IntegerField(1, variant=_messages.Variant.INT32) + license = _messages.StringField(2) + publicationDate = _messages.StringField(3) + startIndex = _messages.IntegerField(4, variant=_messages.Variant.INT32) + title = _messages.StringField(5) + url = _messages.StringField(6) + + +class CitationMetadata(_messages.Message): + r"""The schema of citations found in textual prediction outputs. Citations + originate from various sources and indicate that these contents should be + cited properly. + + Fields: + citations: Metadata of all citations found in this prediction output. + """ + + citations = _messages.MessageField('Citation', 1, repeated=True) + + +class Content(_messages.Message): + r"""The base structured datatype containing multi-part content of a message. + A `Content` includes a `role` field designating the producer of the + `Content` and a `parts` field containing multi-part data that contains the + content of the message turn. + + Fields: + parts: Required. Ordered `Parts` that constitute a single message. Parts + may have different IANA MIME types. + role: Optional. The producer of the content. Must be either 'user' or + 'model'. Useful to set for multi-turn conversations, otherwise can be + left blank or unset. + """ + + parts = _messages.MessageField('Part', 1, repeated=True) + role = _messages.StringField(2) + + +class Empty(_messages.Message): + r"""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); } + """ + + + +class ListLocationsResponse(_messages.Message): + r"""The response message for Locations.ListLocations. + + Fields: + locations: A list of locations that matches the specified filter in the + request. + nextPageToken: The standard List next-page token. + """ + + locations = _messages.MessageField('Location', 1, repeated=True) + nextPageToken = _messages.StringField(2) + + +class ListOperationsResponse(_messages.Message): + r"""The response message for Operations.ListOperations. + + Fields: + nextPageToken: The standard List next-page token. + operations: A list of operations that matches the specified filter in the + request. + """ + + nextPageToken = _messages.StringField(1) + operations = _messages.MessageField('Operation', 2, repeated=True) + + +class ListWorkbenchesResponse(_messages.Message): + r"""Message for response to listing Workbenches. + + Fields: + nextPageToken: A token identifying a page of results the server should + return. + unreachable: Locations that could not be reached. + workbenches: The list of Workbench + """ + + nextPageToken = _messages.StringField(1) + unreachable = _messages.StringField(2, repeated=True) + workbenches = _messages.MessageField('Workbench', 3, repeated=True) + + +class Location(_messages.Message): + r"""A resource that represents a Google Cloud location. + + Messages: + LabelsValue: Cross-service attributes for the location. For example + {"cloud.googleapis.com/region": "us-east1"} + MetadataValue: Service-specific metadata. For example the available + capacity at the given location. + + Fields: + displayName: The friendly name for this location, typically a nearby city + name. For example, "Tokyo". + labels: Cross-service attributes for the location. For example + {"cloud.googleapis.com/region": "us-east1"} + locationId: The canonical id for this location. For example: `"us-east1"`. + metadata: Service-specific metadata. For example the available capacity at + the given location. + name: Resource name for the location, which may vary between + implementations. For example: `"projects/example-project/locations/us- + east1"` + """ + + @encoding.MapUnrecognizedFields('additionalProperties') + class LabelsValue(_messages.Message): + r"""Cross-service attributes for the location. For example + {"cloud.googleapis.com/region": "us-east1"} + + Messages: + AdditionalProperty: An additional property for a LabelsValue object. + + Fields: + additionalProperties: Additional properties of type LabelsValue + """ + + class AdditionalProperty(_messages.Message): + r"""An additional property for a LabelsValue object. + + Fields: + key: Name of the additional property. + value: A string attribute. + """ + + key = _messages.StringField(1) + value = _messages.StringField(2) + + additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True) + + @encoding.MapUnrecognizedFields('additionalProperties') + class MetadataValue(_messages.Message): + r"""Service-specific metadata. For example the available capacity at the + given location. + + Messages: + AdditionalProperty: An additional property for a MetadataValue object. + + Fields: + additionalProperties: Properties of the object. Contains field @type + with type URL. + """ + + class AdditionalProperty(_messages.Message): + r"""An additional property for a MetadataValue object. + + Fields: + key: Name of the additional property. + value: A extra_types.JsonValue attribute. + """ + + key = _messages.StringField(1) + value = _messages.MessageField('extra_types.JsonValue', 2) + + additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True) + + displayName = _messages.StringField(1) + labels = _messages.MessageField('LabelsValue', 2) + locationId = _messages.StringField(3) + metadata = _messages.MessageField('MetadataValue', 4) + name = _messages.StringField(5) + + +class Operation(_messages.Message): + r"""This resource represents a long-running operation that is the result of + a network API call. + + Messages: + MetadataValue: Service-specific metadata associated with the operation. It + typically contains progress information and common metadata such as + create time. Some services might not provide such metadata. Any method + that returns a long-running operation should document the metadata type, + if any. + ResponseValue: The normal, successful response of the operation. If the + original method returns no data on success, such as `Delete`, the + response is `google.protobuf.Empty`. If the original method is standard + `Get`/`Create`/`Update`, the response should be the resource. For other + methods, the response should have the type `XxxResponse`, where `Xxx` is + the original method name. For example, if the original method name is + `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. + + Fields: + done: If the value is `false`, it means the operation is still in + progress. If `true`, the operation is completed, and either `error` or + `response` is available. + error: The error result of the operation in case of failure or + cancellation. + metadata: Service-specific metadata associated with the operation. It + typically contains progress information and common metadata such as + create time. Some services might not provide such metadata. Any method + that returns a long-running operation should document the metadata type, + if any. + name: The server-assigned name, which is only unique within the same + service that originally returns it. If you use the default HTTP mapping, + the `name` should be a resource name ending with + `operations/{unique_id}`. + response: The normal, successful response of the operation. If the + original method returns no data on success, such as `Delete`, the + response is `google.protobuf.Empty`. If the original method is standard + `Get`/`Create`/`Update`, the response should be the resource. For other + methods, the response should have the type `XxxResponse`, where `Xxx` is + the original method name. For example, if the original method name is + `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. + """ + + @encoding.MapUnrecognizedFields('additionalProperties') + class MetadataValue(_messages.Message): + r"""Service-specific metadata associated with the operation. It typically + contains progress information and common metadata such as create time. + Some services might not provide such metadata. Any method that returns a + long-running operation should document the metadata type, if any. + + Messages: + AdditionalProperty: An additional property for a MetadataValue object. + + Fields: + additionalProperties: Properties of the object. Contains field @type + with type URL. + """ + + class AdditionalProperty(_messages.Message): + r"""An additional property for a MetadataValue object. + + Fields: + key: Name of the additional property. + value: A extra_types.JsonValue attribute. + """ + + key = _messages.StringField(1) + value = _messages.MessageField('extra_types.JsonValue', 2) + + additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True) + + @encoding.MapUnrecognizedFields('additionalProperties') + class ResponseValue(_messages.Message): + r"""The normal, successful response of the operation. If the original + method returns no data on success, such as `Delete`, the response is + `google.protobuf.Empty`. If the original method is standard + `Get`/`Create`/`Update`, the response should be the resource. For other + methods, the response should have the type `XxxResponse`, where `Xxx` is + the original method name. For example, if the original method name is + `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. + + Messages: + AdditionalProperty: An additional property for a ResponseValue object. + + Fields: + additionalProperties: Properties of the object. Contains field @type + with type URL. + """ + + class AdditionalProperty(_messages.Message): + r"""An additional property for a ResponseValue object. + + Fields: + key: Name of the additional property. + value: A extra_types.JsonValue attribute. + """ + + key = _messages.StringField(1) + value = _messages.MessageField('extra_types.JsonValue', 2) + + additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True) + + done = _messages.BooleanField(1) + error = _messages.MessageField('Status', 2) + metadata = _messages.MessageField('MetadataValue', 3) + name = _messages.StringField(4) + response = _messages.MessageField('ResponseValue', 5) + + +class OperationMetadata(_messages.Message): + r"""Represents the metadata of the long-running operation. + + Fields: + apiVersion: Output only. API version used to start the operation. + createTime: Output only. The time the operation was created. + endTime: Output only. The time the operation finished running. + requestedCancellation: 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 of 1, corresponding to `Code.CANCELLED`. + statusMessage: Output only. Human-readable status of the operation, if + any. + target: Output only. Server-defined resource path for the target of the + operation. + verb: Output only. Name of the verb executed by the operation. + """ + + apiVersion = _messages.StringField(1) + createTime = _messages.StringField(2) + endTime = _messages.StringField(3) + requestedCancellation = _messages.BooleanField(4) + statusMessage = _messages.StringField(5) + target = _messages.StringField(6) + verb = _messages.StringField(7) + + +class Part(_messages.Message): + r"""A datatype containing media that is part of a multi-part `Content` + message. A `Part` consists of data which has an associated datatype. A + `Part` can only contain one of the accepted types in `Part.data`. + + Fields: + text: Optional. Text part (can be code). + """ + + text = _messages.StringField(1) + + +class SafetyRating(_messages.Message): + r"""Safety rating for a piece of content. The safety rating contains the + category of harm and the harm probability level in that category for a piece + of content. Content is classified for safety across a number of harm + categories and the probability of the harm classification is included here. + + Enums: + CategoryValueValuesEnum: Required. The category for this rating. + ProbabilityValueValuesEnum: Required. The probability of harm for this + content. + + Fields: + blocked: Was this content blocked because of this rating? + category: Required. The category for this rating. + probability: Required. The probability of harm for this content. + """ + + class CategoryValueValuesEnum(_messages.Enum): + r"""Required. The category for this rating. + + Values: + HARM_CATEGORY_UNSPECIFIED: The harm category is unspecified. + HARM_CATEGORY_HATE_SPEECH: The harm category is hate speech. + HARM_CATEGORY_DANGEROUS_CONTENT: The harm category is dangerous content. + HARM_CATEGORY_HARASSMENT: The harm category is harassment. + HARM_CATEGORY_SEXUALLY_EXPLICIT: The harm category is sexually explicit + content. + """ + HARM_CATEGORY_UNSPECIFIED = 0 + HARM_CATEGORY_HATE_SPEECH = 1 + HARM_CATEGORY_DANGEROUS_CONTENT = 2 + HARM_CATEGORY_HARASSMENT = 3 + HARM_CATEGORY_SEXUALLY_EXPLICIT = 4 + + class ProbabilityValueValuesEnum(_messages.Enum): + r"""Required. The probability of harm for this content. + + Values: + HARM_PROBABILITY_UNSPECIFIED: Probability is unspecified. + NEGLIGIBLE: Content has a negligible chance of being unsafe. + LOW: Content has a low chance of being unsafe. + MEDIUM: Content has a medium chance of being unsafe. + HIGH: Content has a high chance of being unsafe. + """ + HARM_PROBABILITY_UNSPECIFIED = 0 + NEGLIGIBLE = 1 + LOW = 2 + MEDIUM = 3 + HIGH = 4 + + blocked = _messages.BooleanField(1) + category = _messages.EnumField('CategoryValueValuesEnum', 2) + probability = _messages.EnumField('ProbabilityValueValuesEnum', 3) + + +class SafetySetting(_messages.Message): + r"""Safety setting, affecting the safety-blocking behavior. Passing a safety + setting for a category changes the allowed proability that content is + blocked. + + Enums: + CategoryValueValuesEnum: Required. The category for this setting. + ThresholdValueValuesEnum: Required. Controls the probability threshold at + which harm is blocked. + + Fields: + category: Required. The category for this setting. + threshold: Required. Controls the probability threshold at which harm is + blocked. + """ + + class CategoryValueValuesEnum(_messages.Enum): + r"""Required. The category for this setting. + + Values: + HARM_CATEGORY_UNSPECIFIED: The harm category is unspecified. + HARM_CATEGORY_HATE_SPEECH: The harm category is hate speech. + HARM_CATEGORY_DANGEROUS_CONTENT: The harm category is dangerous content. + HARM_CATEGORY_HARASSMENT: The harm category is harassment. + HARM_CATEGORY_SEXUALLY_EXPLICIT: The harm category is sexually explicit + content. + """ + HARM_CATEGORY_UNSPECIFIED = 0 + HARM_CATEGORY_HATE_SPEECH = 1 + HARM_CATEGORY_DANGEROUS_CONTENT = 2 + HARM_CATEGORY_HARASSMENT = 3 + HARM_CATEGORY_SEXUALLY_EXPLICIT = 4 + + class ThresholdValueValuesEnum(_messages.Enum): + r"""Required. Controls the probability threshold at which harm is blocked. + + Values: + HARM_BLOCK_THRESHOLD_UNSPECIFIED: Threshold is unspecified. + BLOCK_LOW_AND_ABOVE: Content with NEGLIGIBLE will be allowed. + BLOCK_MEDIUM_AND_ABOVE: Content with NEGLIGIBLE and LOW will be allowed. + BLOCK_ONLY_HIGH: Content with NEGLIGIBLE, LOW, and MEDIUM will be + allowed. + BLOCK_NONE: All content will be allowed. + """ + HARM_BLOCK_THRESHOLD_UNSPECIFIED = 0 + BLOCK_LOW_AND_ABOVE = 1 + BLOCK_MEDIUM_AND_ABOVE = 2 + BLOCK_ONLY_HIGH = 3 + BLOCK_NONE = 4 + + category = _messages.EnumField('CategoryValueValuesEnum', 1) + threshold = _messages.EnumField('ThresholdValueValuesEnum', 2) + + +class SeclmProjectsLocationsGetRequest(_messages.Message): + r"""A SeclmProjectsLocationsGetRequest object. + + Fields: + name: Resource name for the location. + """ + + name = _messages.StringField(1, required=True) + + +class SeclmProjectsLocationsListRequest(_messages.Message): + r"""A SeclmProjectsLocationsListRequest object. + + Fields: + filter: A filter to narrow down results to a preferred subset. The + filtering language accepts strings like `"displayName=tokyo"`, and is + documented in more detail in [AIP-160](https://google.aip.dev/160). + name: The resource that owns the locations collection, if applicable. + pageSize: The maximum number of results to return. If not set, the service + selects a default. + pageToken: A page token received from the `next_page_token` field in the + response. Send that page token to receive the subsequent page. + """ + + filter = _messages.StringField(1) + name = _messages.StringField(2, required=True) + pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32) + pageToken = _messages.StringField(4) + + +class SeclmProjectsLocationsOperationsCancelRequest(_messages.Message): + r"""A SeclmProjectsLocationsOperationsCancelRequest object. + + Fields: + cancelOperationRequest: A CancelOperationRequest resource to be passed as + the request body. + name: The name of the operation resource to be cancelled. + """ + + cancelOperationRequest = _messages.MessageField('CancelOperationRequest', 1) + name = _messages.StringField(2, required=True) + + +class SeclmProjectsLocationsOperationsDeleteRequest(_messages.Message): + r"""A SeclmProjectsLocationsOperationsDeleteRequest object. + + Fields: + name: The name of the operation resource to be deleted. + """ + + name = _messages.StringField(1, required=True) + + +class SeclmProjectsLocationsOperationsGetRequest(_messages.Message): + r"""A SeclmProjectsLocationsOperationsGetRequest object. + + Fields: + name: The name of the operation resource. + """ + + name = _messages.StringField(1, required=True) + + +class SeclmProjectsLocationsOperationsListRequest(_messages.Message): + r"""A SeclmProjectsLocationsOperationsListRequest object. + + Fields: + filter: The standard list filter. + name: The name of the operation's parent resource. + pageSize: The standard list page size. + pageToken: The standard list page token. + """ + + filter = _messages.StringField(1) + name = _messages.StringField(2, required=True) + pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32) + pageToken = _messages.StringField(4) + + +class SeclmProjectsLocationsWorkbenchesCreateRequest(_messages.Message): + r"""A SeclmProjectsLocationsWorkbenchesCreateRequest object. + + Fields: + parent: Required. Value for parent. + requestId: 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). + workbench: A Workbench resource to be passed as the request body. + workbenchId: Required. Id of the requesting object. If auto-generating Id + server-side, remove this field and workbench_id from the + method_signature of Create RPC. + """ + + parent = _messages.StringField(1, required=True) + requestId = _messages.StringField(2) + workbench = _messages.MessageField('Workbench', 3) + workbenchId = _messages.StringField(4) + + +class SeclmProjectsLocationsWorkbenchesDeleteRequest(_messages.Message): + r"""A SeclmProjectsLocationsWorkbenchesDeleteRequest object. + + Fields: + name: Required. Name of the resource. + requestId: 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 = _messages.StringField(1, required=True) + requestId = _messages.StringField(2) + + +class SeclmProjectsLocationsWorkbenchesGetRequest(_messages.Message): + r"""A SeclmProjectsLocationsWorkbenchesGetRequest object. + + Fields: + name: Required. Name of the resource. + """ + + name = _messages.StringField(1, required=True) + + +class SeclmProjectsLocationsWorkbenchesListRequest(_messages.Message): + r"""A SeclmProjectsLocationsWorkbenchesListRequest object. + + Fields: + filter: Optional. String for filtering results. + orderBy: Optional. Hint for how to order the results. + pageSize: Optional. Requested page size. Server may return fewer items + than requested. If unspecified, server will pick an appropriate default. + pageToken: Optional. A token identifying a page of results the server + should return. + parent: Required. Parent value for ListWorkbenchesRequest. + """ + + filter = _messages.StringField(1) + orderBy = _messages.StringField(2) + pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32) + pageToken = _messages.StringField(4) + parent = _messages.StringField(5, required=True) + + +class SeclmProjectsLocationsWorkbenchesPatchRequest(_messages.Message): + r"""A SeclmProjectsLocationsWorkbenchesPatchRequest object. + + Fields: + name: Identifier. Name of resource. + requestId: 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). + updateMask: Optional. Field mask is used to specify the fields to be + overwritten in the Workbench 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. + workbench: A Workbench resource to be passed as the request body. + """ + + name = _messages.StringField(1, required=True) + requestId = _messages.StringField(2) + updateMask = _messages.StringField(3) + workbench = _messages.MessageField('Workbench', 4) + + +class SeclmProjectsLocationsWorkbenchesQueryRequest(_messages.Message): + r"""A SeclmProjectsLocationsWorkbenchesQueryRequest object. + + Fields: + name: Required. Name of the resource. + workbenchQueryRequest: A WorkbenchQueryRequest resource to be passed as + the request body. + """ + + name = _messages.StringField(1, required=True) + workbenchQueryRequest = _messages.MessageField('WorkbenchQueryRequest', 2) + + +class StandardQueryParameters(_messages.Message): + r"""Query parameters accepted by all methods. + + Enums: + FXgafvValueValuesEnum: V1 error format. + AltValueValuesEnum: Data format for response. + + Fields: + f__xgafv: V1 error format. + access_token: OAuth access token. + alt: Data format for response. + callback: JSONP + fields: Selector specifying which fields to include in a partial response. + key: API key. Your API key identifies your project and provides you with + API access, quota, and reports. Required unless you provide an OAuth 2.0 + token. + oauth_token: OAuth 2.0 token for the current user. + prettyPrint: Returns response with indentations and line breaks. + quotaUser: Available to use for quota purposes for server-side + applications. Can be any arbitrary string assigned to a user, but should + not exceed 40 characters. + trace: A tracing token of the form "token:" to include in api + requests. + uploadType: Legacy upload protocol for media (e.g. "media", "multipart"). + upload_protocol: Upload protocol for media (e.g. "raw", "multipart"). + """ + + class AltValueValuesEnum(_messages.Enum): + r"""Data format for response. + + Values: + json: Responses with Content-Type of application/json + media: Media download with context-dependent Content-Type + proto: Responses with Content-Type of application/x-protobuf + """ + json = 0 + media = 1 + proto = 2 + + class FXgafvValueValuesEnum(_messages.Enum): + r"""V1 error format. + + Values: + _1: v1 error format + _2: v2 error format + """ + _1 = 0 + _2 = 1 + + f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1) + access_token = _messages.StringField(2) + alt = _messages.EnumField('AltValueValuesEnum', 3, default='json') + callback = _messages.StringField(4) + fields = _messages.StringField(5) + key = _messages.StringField(6) + oauth_token = _messages.StringField(7) + prettyPrint = _messages.BooleanField(8, default=True) + quotaUser = _messages.StringField(9) + trace = _messages.StringField(10) + uploadType = _messages.StringField(11) + upload_protocol = _messages.StringField(12) + + +class Status(_messages.Message): + r"""The `Status` type defines a logical error model that is suitable for + different programming environments, including REST APIs and RPC APIs. It is + used by [gRPC](https://github.com/grpc). Each `Status` message contains + three pieces of data: error code, error message, and error details. You can + find out more about this error model and how to work with it in the [API + Design Guide](https://cloud.google.com/apis/design/errors). + + Messages: + DetailsValueListEntry: A DetailsValueListEntry object. + + Fields: + code: The status code, which should be an enum value of google.rpc.Code. + details: A list of messages that carry the error details. There is a + common set of message types for APIs to use. + message: A developer-facing error message, which should be in English. Any + user-facing error message should be localized and sent in the + google.rpc.Status.details field, or localized by the client. + """ + + @encoding.MapUnrecognizedFields('additionalProperties') + class DetailsValueListEntry(_messages.Message): + r"""A DetailsValueListEntry object. + + Messages: + AdditionalProperty: An additional property for a DetailsValueListEntry + object. + + Fields: + additionalProperties: Properties of the object. Contains field @type + with type URL. + """ + + class AdditionalProperty(_messages.Message): + r"""An additional property for a DetailsValueListEntry object. + + Fields: + key: Name of the additional property. + value: A extra_types.JsonValue attribute. + """ + + key = _messages.StringField(1) + value = _messages.MessageField('extra_types.JsonValue', 2) + + additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True) + + code = _messages.IntegerField(1, variant=_messages.Variant.INT32) + details = _messages.MessageField('DetailsValueListEntry', 2, repeated=True) + message = _messages.StringField(3) + + +class Workbench(_messages.Message): + r"""Message describing Workbench object. + + Messages: + LabelsValue: Optional. Labels as key value pairs. + + Fields: + createTime: Output only. Create time stamp. + labels: Optional. Labels as key value pairs. + name: Identifier. Name of resource. + updateTime: Output only. Update time stamp. + """ + + @encoding.MapUnrecognizedFields('additionalProperties') + class LabelsValue(_messages.Message): + r"""Optional. Labels as key value pairs. + + Messages: + AdditionalProperty: An additional property for a LabelsValue object. + + Fields: + additionalProperties: Additional properties of type LabelsValue + """ + + class AdditionalProperty(_messages.Message): + r"""An additional property for a LabelsValue object. + + Fields: + key: Name of the additional property. + value: A string attribute. + """ + + key = _messages.StringField(1) + value = _messages.StringField(2) + + additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True) + + createTime = _messages.StringField(1) + labels = _messages.MessageField('LabelsValue', 2) + name = _messages.StringField(3) + updateTime = _messages.StringField(4) + + +class WorkbenchQueryRequest(_messages.Message): + r"""Message for querying a Workbench. + + Fields: + contents: Optional. The content of the current conversation with the + model. For single-turn queries, this is a single instance. For multi- + turn queries, this is a repeated field that contains conversation + history + latest request. + safetySettings: Optional. Per request settings for blocking unsafe + content. Enforced on GenerateContentResponse.candidates. + """ + + contents = _messages.MessageField('Content', 1, repeated=True) + safetySettings = _messages.MessageField('SafetySetting', 2, repeated=True) + + +class WorkbenchQueryResponse(_messages.Message): + r"""Response to querying a Workbench. + + Fields: + candidates: Output only. Candidate responses from the model. + """ + + candidates = _messages.MessageField('Candidate', 1, repeated=True) + + +encoding.AddCustomJsonFieldMapping( + StandardQueryParameters, 'f__xgafv', '$.xgafv') +encoding.AddCustomJsonEnumMapping( + StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') +encoding.AddCustomJsonEnumMapping( + StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/secretmanager/v1/secretmanager_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/secretmanager/v1/secretmanager_v1_messages.py index 1303e26d4e..2cddc82e35 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/secretmanager/v1/secretmanager_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/secretmanager/v1/secretmanager_v1_messages.py @@ -1570,3 +1570,7 @@ class UserManagedStatus(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + SecretmanagerProjectsLocationsSecretsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + SecretmanagerProjectsSecretsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/secretmanager/v1beta2/secretmanager_v1beta2_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/secretmanager/v1beta2/secretmanager_v1beta2_messages.py index 8bb7673531..c6a554fd51 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/secretmanager/v1beta2/secretmanager_v1beta2_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/secretmanager/v1beta2/secretmanager_v1beta2_messages.py @@ -1570,3 +1570,7 @@ class UserManagedStatus(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + SecretmanagerProjectsLocationsSecretsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + SecretmanagerProjectsSecretsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/securesourcemanager/v1/securesourcemanager_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/securesourcemanager/v1/securesourcemanager_v1_messages.py index ff0b791ce8..61042d5455 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/securesourcemanager/v1/securesourcemanager_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/securesourcemanager/v1/securesourcemanager_v1_messages.py @@ -1448,3 +1448,7 @@ class URIs(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + SecuresourcemanagerProjectsLocationsInstancesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + SecuresourcemanagerProjectsLocationsRepositoriesGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/servicemanagement/v1/servicemanagement_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/servicemanagement/v1/servicemanagement_v1_messages.py index 5c7df0e9e6..f5d51e981d 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/servicemanagement/v1/servicemanagement_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/servicemanagement/v1/servicemanagement_v1_messages.py @@ -1402,10 +1402,9 @@ class Endpoint(_messages.Message): origin request is allowed # to proceed. allow_cors: true Fields: - aliases: Unimplemented. Dot not use. DEPRECATED: This field is no longer - supported. Instead of using aliases, please specify multiple - google.api.Endpoint for each of the intended aliases. Additional names - that this endpoint will be hosted on. + aliases: Aliases for this endpoint, these will be served by the same + UrlMap as the parent endpoint, and will be provisioned in the GCP stack + for the Regional Endpoints. allowCors: Allowing [CORS](https://en.wikipedia.org/wiki/Cross- origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/servicenetworking/v1/servicenetworking_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/servicenetworking/v1/servicenetworking_v1_messages.py index 4c35f95d74..0fbfdd165b 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/servicenetworking/v1/servicenetworking_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/servicenetworking/v1/servicenetworking_v1_messages.py @@ -1254,10 +1254,9 @@ class Endpoint(_messages.Message): origin request is allowed # to proceed. allow_cors: true Fields: - aliases: Unimplemented. Dot not use. DEPRECATED: This field is no longer - supported. Instead of using aliases, please specify multiple - google.api.Endpoint for each of the intended aliases. Additional names - that this endpoint will be hosted on. + aliases: Aliases for this endpoint, these will be served by the same + UrlMap as the parent endpoint, and will be provisioned in the GCP stack + for the Regional Endpoints. allowCors: Allowing [CORS](https://en.wikipedia.org/wiki/Cross- origin_resource_sharing), aka cross-domain traffic, would allow the backends served from this endpoint to receive and respond to HTTP diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/source/v1/source_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/source/v1/source_v1_messages.py index 5a47a668d5..31df92a87f 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/source/v1/source_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/source/v1/source_v1_messages.py @@ -2307,3 +2307,299 @@ class ModeValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposDeleteRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposGetRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesCreateRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesDeleteRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesGetRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_cloudRepo_aliasName', 'sourceContext.cloudRepo.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_cloudRepo_repoId_uid', 'sourceContext.cloudRepo.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_cloudRepo_revisionId', 'sourceContext.cloudRepo.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_cloudWorkspace_snapshotId', 'sourceContext.cloudWorkspace.snapshotId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_name', 'sourceContext.cloudWorkspace.workspaceId.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_projectRepoId_projectId', 'sourceContext.cloudWorkspace.workspaceId.repoId.projectRepoId.projectId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_projectRepoId_repoName', 'sourceContext.cloudWorkspace.workspaceId.repoId.projectRepoId.repoName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_uid', 'sourceContext.cloudWorkspace.workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_gerrit_aliasContext_kind', 'sourceContext.gerrit.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_gerrit_aliasContext_name', 'sourceContext.gerrit.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_gerrit_aliasName', 'sourceContext.gerrit.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_gerrit_gerritProject', 'sourceContext.gerrit.gerritProject') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_gerrit_hostUri', 'sourceContext.gerrit.hostUri') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_gerrit_revisionId', 'sourceContext.gerrit.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_git_revisionId', 'sourceContext.git.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesListFilesRequest, 'sourceContext_git_url', 'sourceContext.git.url') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesUpdateRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_cloudRepo_aliasName', 'sourceContext.cloudRepo.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_cloudRepo_repoId_uid', 'sourceContext.cloudRepo.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_cloudRepo_revisionId', 'sourceContext.cloudRepo.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_cloudWorkspace_snapshotId', 'sourceContext.cloudWorkspace.snapshotId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_name', 'sourceContext.cloudWorkspace.workspaceId.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_projectRepoId_projectId', 'sourceContext.cloudWorkspace.workspaceId.repoId.projectRepoId.projectId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_projectRepoId_repoName', 'sourceContext.cloudWorkspace.workspaceId.repoId.projectRepoId.repoName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_uid', 'sourceContext.cloudWorkspace.workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_gerrit_aliasContext_kind', 'sourceContext.gerrit.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_gerrit_aliasContext_name', 'sourceContext.gerrit.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_gerrit_aliasName', 'sourceContext.gerrit.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_gerrit_gerritProject', 'sourceContext.gerrit.gerritProject') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_gerrit_hostUri', 'sourceContext.gerrit.hostUri') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_gerrit_revisionId', 'sourceContext.gerrit.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_git_revisionId', 'sourceContext.git.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposAliasesFilesGetRequest, 'sourceContext_git_url', 'sourceContext.git.url') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposFilesReadFromWorkspaceOrAliasRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsGetRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsGetBatchGetRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_cloudRepo_aliasContext_kind', 'sourceContext.cloudRepo.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_cloudRepo_aliasContext_name', 'sourceContext.cloudRepo.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_cloudRepo_aliasName', 'sourceContext.cloudRepo.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_cloudRepo_repoId_uid', 'sourceContext.cloudRepo.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_cloudWorkspace_snapshotId', 'sourceContext.cloudWorkspace.snapshotId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_name', 'sourceContext.cloudWorkspace.workspaceId.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_projectRepoId_projectId', 'sourceContext.cloudWorkspace.workspaceId.repoId.projectRepoId.projectId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_projectRepoId_repoName', 'sourceContext.cloudWorkspace.workspaceId.repoId.projectRepoId.repoName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_uid', 'sourceContext.cloudWorkspace.workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_gerrit_aliasContext_kind', 'sourceContext.gerrit.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_gerrit_aliasContext_name', 'sourceContext.gerrit.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_gerrit_aliasName', 'sourceContext.gerrit.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_gerrit_gerritProject', 'sourceContext.gerrit.gerritProject') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_gerrit_hostUri', 'sourceContext.gerrit.hostUri') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_gerrit_revisionId', 'sourceContext.gerrit.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_git_revisionId', 'sourceContext.git.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsListFilesRequest, 'sourceContext_git_url', 'sourceContext.git.url') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_cloudRepo_aliasContext_kind', 'sourceContext.cloudRepo.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_cloudRepo_aliasContext_name', 'sourceContext.cloudRepo.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_cloudRepo_aliasName', 'sourceContext.cloudRepo.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_cloudRepo_repoId_uid', 'sourceContext.cloudRepo.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_cloudWorkspace_snapshotId', 'sourceContext.cloudWorkspace.snapshotId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_name', 'sourceContext.cloudWorkspace.workspaceId.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_projectRepoId_projectId', 'sourceContext.cloudWorkspace.workspaceId.repoId.projectRepoId.projectId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_projectRepoId_repoName', 'sourceContext.cloudWorkspace.workspaceId.repoId.projectRepoId.repoName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_uid', 'sourceContext.cloudWorkspace.workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_gerrit_aliasContext_kind', 'sourceContext.gerrit.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_gerrit_aliasContext_name', 'sourceContext.gerrit.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_gerrit_aliasName', 'sourceContext.gerrit.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_gerrit_gerritProject', 'sourceContext.gerrit.gerritProject') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_gerrit_hostUri', 'sourceContext.gerrit.hostUri') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_gerrit_revisionId', 'sourceContext.gerrit.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_git_revisionId', 'sourceContext.git.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposRevisionsFilesGetRequest, 'sourceContext_git_url', 'sourceContext.git.url') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesDeleteRequest, 'workspaceId_repoId_uid', 'workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesGetRequest, 'workspaceId_repoId_uid', 'workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListRequest, 'repoId_uid', 'repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_cloudRepo_aliasContext_kind', 'sourceContext.cloudRepo.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_cloudRepo_aliasContext_name', 'sourceContext.cloudRepo.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_cloudRepo_aliasName', 'sourceContext.cloudRepo.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_cloudRepo_repoId_projectRepoId_projectId', 'sourceContext.cloudRepo.repoId.projectRepoId.projectId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_cloudRepo_repoId_projectRepoId_repoName', 'sourceContext.cloudRepo.repoId.projectRepoId.repoName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_cloudRepo_repoId_uid', 'sourceContext.cloudRepo.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_cloudRepo_revisionId', 'sourceContext.cloudRepo.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_cloudWorkspace_snapshotId', 'sourceContext.cloudWorkspace.snapshotId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_uid', 'sourceContext.cloudWorkspace.workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_gerrit_aliasContext_kind', 'sourceContext.gerrit.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_gerrit_aliasContext_name', 'sourceContext.gerrit.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_gerrit_aliasName', 'sourceContext.gerrit.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_gerrit_gerritProject', 'sourceContext.gerrit.gerritProject') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_gerrit_hostUri', 'sourceContext.gerrit.hostUri') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_gerrit_revisionId', 'sourceContext.gerrit.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_git_revisionId', 'sourceContext.git.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesListFilesRequest, 'sourceContext_git_url', 'sourceContext.git.url') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_cloudRepo_aliasContext_kind', 'sourceContext.cloudRepo.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_cloudRepo_aliasContext_name', 'sourceContext.cloudRepo.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_cloudRepo_aliasName', 'sourceContext.cloudRepo.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_cloudRepo_repoId_projectRepoId_projectId', 'sourceContext.cloudRepo.repoId.projectRepoId.projectId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_cloudRepo_repoId_projectRepoId_repoName', 'sourceContext.cloudRepo.repoId.projectRepoId.repoName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_cloudRepo_repoId_uid', 'sourceContext.cloudRepo.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_cloudRepo_revisionId', 'sourceContext.cloudRepo.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_cloudWorkspace_snapshotId', 'sourceContext.cloudWorkspace.snapshotId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_uid', 'sourceContext.cloudWorkspace.workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_gerrit_aliasContext_kind', 'sourceContext.gerrit.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_gerrit_aliasContext_name', 'sourceContext.gerrit.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_gerrit_aliasName', 'sourceContext.gerrit.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_gerrit_gerritProject', 'sourceContext.gerrit.gerritProject') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_gerrit_hostUri', 'sourceContext.gerrit.hostUri') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_gerrit_revisionId', 'sourceContext.gerrit.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_git_revisionId', 'sourceContext.git.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesFilesGetRequest, 'sourceContext_git_url', 'sourceContext.git.url') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsGetRequest, 'workspaceId_repoId_uid', 'workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListRequest, 'workspaceId_repoId_uid', 'workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_cloudRepo_aliasContext_kind', 'sourceContext.cloudRepo.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_cloudRepo_aliasContext_name', 'sourceContext.cloudRepo.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_cloudRepo_aliasName', 'sourceContext.cloudRepo.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_cloudRepo_repoId_projectRepoId_projectId', 'sourceContext.cloudRepo.repoId.projectRepoId.projectId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_cloudRepo_repoId_projectRepoId_repoName', 'sourceContext.cloudRepo.repoId.projectRepoId.repoName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_cloudRepo_repoId_uid', 'sourceContext.cloudRepo.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_cloudRepo_revisionId', 'sourceContext.cloudRepo.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_uid', 'sourceContext.cloudWorkspace.workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_gerrit_aliasContext_kind', 'sourceContext.gerrit.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_gerrit_aliasContext_name', 'sourceContext.gerrit.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_gerrit_aliasName', 'sourceContext.gerrit.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_gerrit_gerritProject', 'sourceContext.gerrit.gerritProject') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_gerrit_hostUri', 'sourceContext.gerrit.hostUri') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_gerrit_revisionId', 'sourceContext.gerrit.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_git_revisionId', 'sourceContext.git.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsListFilesRequest, 'sourceContext_git_url', 'sourceContext.git.url') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_cloudRepo_aliasContext_kind', 'sourceContext.cloudRepo.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_cloudRepo_aliasContext_name', 'sourceContext.cloudRepo.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_cloudRepo_aliasName', 'sourceContext.cloudRepo.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_cloudRepo_repoId_projectRepoId_projectId', 'sourceContext.cloudRepo.repoId.projectRepoId.projectId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_cloudRepo_repoId_projectRepoId_repoName', 'sourceContext.cloudRepo.repoId.projectRepoId.repoName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_cloudRepo_repoId_uid', 'sourceContext.cloudRepo.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_cloudRepo_revisionId', 'sourceContext.cloudRepo.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_cloudWorkspace_workspaceId_repoId_uid', 'sourceContext.cloudWorkspace.workspaceId.repoId.uid') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_gerrit_aliasContext_kind', 'sourceContext.gerrit.aliasContext.kind') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_gerrit_aliasContext_name', 'sourceContext.gerrit.aliasContext.name') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_gerrit_aliasName', 'sourceContext.gerrit.aliasName') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_gerrit_gerritProject', 'sourceContext.gerrit.gerritProject') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_gerrit_hostUri', 'sourceContext.gerrit.hostUri') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_gerrit_revisionId', 'sourceContext.gerrit.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_git_revisionId', 'sourceContext.git.revisionId') +encoding.AddCustomJsonFieldMapping( + SourceProjectsReposWorkspacesSnapshotsFilesGetRequest, 'sourceContext_git_url', 'sourceContext.git.url') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sourcerepo/v1/sourcerepo_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sourcerepo/v1/sourcerepo_v1_messages.py index e95b9510b3..2ce6a4b2a7 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sourcerepo/v1/sourcerepo_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sourcerepo/v1/sourcerepo_v1_messages.py @@ -941,3 +941,5 @@ class UpdateRepoRequest(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + SourcerepoProjectsReposGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/spanner/v1/spanner_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/spanner/v1/spanner_v1_messages.py index 74fccedf79..98677f7e73 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/spanner/v1/spanner_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/spanner/v1/spanner_v1_messages.py @@ -7182,3 +7182,9 @@ class ValuesValueListEntry(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + SpannerProjectsInstancesBackupsCreateRequest, 'encryptionConfig_encryptionType', 'encryptionConfig.encryptionType') +encoding.AddCustomJsonFieldMapping( + SpannerProjectsInstancesBackupsCreateRequest, 'encryptionConfig_kmsKeyName', 'encryptionConfig.kmsKeyName') +encoding.AddCustomJsonFieldMapping( + SpannerProjectsInstancesBackupsCreateRequest, 'encryptionConfig_kmsKeyNames', 'encryptionConfig.kmsKeyNames') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sqladmin/v1beta4/sqladmin_v1beta4_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sqladmin/v1beta4/sqladmin_v1beta4_messages.py index 0305d39a58..e5d938b16d 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sqladmin/v1beta4/sqladmin_v1beta4_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/sqladmin/v1beta4/sqladmin_v1beta4_messages.py @@ -656,6 +656,7 @@ class DatabaseVersionValueValuesEnum(_messages.Enum): version is 39. MYSQL_8_0_40: The database major version is MySQL 8.0 and the minor version is 40. + MYSQL_8_4: The database version is MySQL 8.4. SQLSERVER_2019_STANDARD: The database version is SQL Server 2019 Standard. SQLSERVER_2019_ENTERPRISE: The database version is SQL Server 2019 @@ -703,14 +704,15 @@ class DatabaseVersionValueValuesEnum(_messages.Enum): MYSQL_8_0_38 = 31 MYSQL_8_0_39 = 32 MYSQL_8_0_40 = 33 - SQLSERVER_2019_STANDARD = 34 - SQLSERVER_2019_ENTERPRISE = 35 - SQLSERVER_2019_EXPRESS = 36 - SQLSERVER_2019_WEB = 37 - SQLSERVER_2022_STANDARD = 38 - SQLSERVER_2022_ENTERPRISE = 39 - SQLSERVER_2022_EXPRESS = 40 - SQLSERVER_2022_WEB = 41 + MYSQL_8_4 = 34 + SQLSERVER_2019_STANDARD = 35 + SQLSERVER_2019_ENTERPRISE = 36 + SQLSERVER_2019_EXPRESS = 37 + SQLSERVER_2019_WEB = 38 + SQLSERVER_2022_STANDARD = 39 + SQLSERVER_2022_ENTERPRISE = 40 + SQLSERVER_2022_EXPRESS = 41 + SQLSERVER_2022_WEB = 42 backendType = _messages.EnumField('BackendTypeValueValuesEnum', 1) databaseVersion = _messages.EnumField('DatabaseVersionValueValuesEnum', 2) @@ -969,6 +971,7 @@ class DatabaseVersionValueValuesEnum(_messages.Enum): version is 39. MYSQL_8_0_40: The database major version is MySQL 8.0 and the minor version is 40. + MYSQL_8_4: The database version is MySQL 8.4. SQLSERVER_2019_STANDARD: The database version is SQL Server 2019 Standard. SQLSERVER_2019_ENTERPRISE: The database version is SQL Server 2019 @@ -1016,14 +1019,15 @@ class DatabaseVersionValueValuesEnum(_messages.Enum): MYSQL_8_0_38 = 31 MYSQL_8_0_39 = 32 MYSQL_8_0_40 = 33 - SQLSERVER_2019_STANDARD = 34 - SQLSERVER_2019_ENTERPRISE = 35 - SQLSERVER_2019_EXPRESS = 36 - SQLSERVER_2019_WEB = 37 - SQLSERVER_2022_STANDARD = 38 - SQLSERVER_2022_ENTERPRISE = 39 - SQLSERVER_2022_EXPRESS = 40 - SQLSERVER_2022_WEB = 41 + MYSQL_8_4 = 34 + SQLSERVER_2019_STANDARD = 35 + SQLSERVER_2019_ENTERPRISE = 36 + SQLSERVER_2019_EXPRESS = 37 + SQLSERVER_2019_WEB = 38 + SQLSERVER_2022_STANDARD = 39 + SQLSERVER_2022_ENTERPRISE = 40 + SQLSERVER_2022_EXPRESS = 41 + SQLSERVER_2022_WEB = 42 class InstalledVersionValueValuesEnum(_messages.Enum): r"""Stores the current database version including minor version such as @@ -1082,6 +1086,7 @@ class InstalledVersionValueValuesEnum(_messages.Enum): version is 39. MYSQL_8_0_40: The database major version is MySQL 8.0 and the minor version is 40. + MYSQL_8_4: The database version is MySQL 8.4. SQLSERVER_2019_STANDARD: The database version is SQL Server 2019 Standard. SQLSERVER_2019_ENTERPRISE: The database version is SQL Server 2019 @@ -1129,14 +1134,15 @@ class InstalledVersionValueValuesEnum(_messages.Enum): MYSQL_8_0_38 = 31 MYSQL_8_0_39 = 32 MYSQL_8_0_40 = 33 - SQLSERVER_2019_STANDARD = 34 - SQLSERVER_2019_ENTERPRISE = 35 - SQLSERVER_2019_EXPRESS = 36 - SQLSERVER_2019_WEB = 37 - SQLSERVER_2022_STANDARD = 38 - SQLSERVER_2022_ENTERPRISE = 39 - SQLSERVER_2022_EXPRESS = 40 - SQLSERVER_2022_WEB = 41 + MYSQL_8_4 = 34 + SQLSERVER_2019_STANDARD = 35 + SQLSERVER_2019_ENTERPRISE = 36 + SQLSERVER_2019_EXPRESS = 37 + SQLSERVER_2019_WEB = 38 + SQLSERVER_2022_STANDARD = 39 + SQLSERVER_2022_ENTERPRISE = 40 + SQLSERVER_2022_EXPRESS = 41 + SQLSERVER_2022_WEB = 42 class InstanceTypeValueValuesEnum(_messages.Enum): r"""The instance type. @@ -1690,6 +1696,7 @@ class AppliesToValueListEntryValuesEnum(_messages.Enum): version is 39. MYSQL_8_0_40: The database major version is MySQL 8.0 and the minor version is 40. + MYSQL_8_4: The database version is MySQL 8.4. SQLSERVER_2019_STANDARD: The database version is SQL Server 2019 Standard. SQLSERVER_2019_ENTERPRISE: The database version is SQL Server 2019 @@ -1737,14 +1744,15 @@ class AppliesToValueListEntryValuesEnum(_messages.Enum): MYSQL_8_0_38 = 31 MYSQL_8_0_39 = 32 MYSQL_8_0_40 = 33 - SQLSERVER_2019_STANDARD = 34 - SQLSERVER_2019_ENTERPRISE = 35 - SQLSERVER_2019_EXPRESS = 36 - SQLSERVER_2019_WEB = 37 - SQLSERVER_2022_STANDARD = 38 - SQLSERVER_2022_ENTERPRISE = 39 - SQLSERVER_2022_EXPRESS = 40 - SQLSERVER_2022_WEB = 41 + MYSQL_8_4 = 34 + SQLSERVER_2019_STANDARD = 35 + SQLSERVER_2019_ENTERPRISE = 36 + SQLSERVER_2019_EXPRESS = 37 + SQLSERVER_2019_WEB = 38 + SQLSERVER_2022_STANDARD = 39 + SQLSERVER_2022_ENTERPRISE = 40 + SQLSERVER_2022_EXPRESS = 41 + SQLSERVER_2022_WEB = 42 class TypeValueValuesEnum(_messages.Enum): r"""The type of the flag. Flags are typed to being `BOOLEAN`, `STRING`, @@ -2676,6 +2684,15 @@ class OperationTypeValueValuesEnum(_messages.Enum): replica operation. Effect of a promote operation to the old primary is executed in this operation, asynchronously from the promote replica operation executed to the replica. + CLUSTER_MAINTENANCE: Indicates that the instance, its read replicas, and + its cascading replicas are in maintenance. Maintenance typically gets + initiated on groups of replicas first, followed by the primary + instance. For each instance, maintenance typically causes the instance + to be unavailable for 1-3 minutes. + SELF_SERVICE_MAINTENANCE: Indicates that the instance (and any of its + replicas) are currently in maintenance. This is initiated as a self- + service request by using SSM. Maintenance typically causes the + instance to be unavailable for 1-3 minutes. """ SQL_OPERATION_TYPE_UNSPECIFIED = 0 IMPORT = 1 @@ -2720,6 +2737,8 @@ class OperationTypeValueValuesEnum(_messages.Enum): ACQUIRE_SSRS_LEASE = 40 RELEASE_SSRS_LEASE = 41 RECONFIGURE_OLD_PRIMARY = 42 + CLUSTER_MAINTENANCE = 43 + SELF_SERVICE_MAINTENANCE = 44 class StatusValueValuesEnum(_messages.Enum): r"""The status of an operation. @@ -3107,10 +3126,10 @@ class Settings(_messages.Message): instance deletion. denyMaintenancePeriods: Deny maintenance periods edition: Optional. The edition of the instance. - enableDataplexSchemaExtraction: Optional. By default, Cloud SQL instances - enable schema extraction for Dataplex. When this parameter is set to - false, schema extraction for Dataplex on Cloud SQL instances is - deactivated. + enableDataplexIntegration: Optional. By default, Cloud SQL instances have + schema extraction disabled for Dataplex. When this parameter is set to + true, schema extraction for Dataplex on Cloud SQL instances is + activated. enableGoogleMlIntegration: Optional. When this parameter is set to true, Cloud SQL instances can connect to Vertex AI to pass requests for real- time predictions and insights to the AI. The default value is false. @@ -3322,7 +3341,7 @@ class AdditionalProperty(_messages.Message): deletionProtectionEnabled = _messages.BooleanField(15) denyMaintenancePeriods = _messages.MessageField('DenyMaintenancePeriod', 16, repeated=True) edition = _messages.EnumField('EditionValueValuesEnum', 17) - enableDataplexSchemaExtraction = _messages.BooleanField(18) + enableDataplexIntegration = _messages.BooleanField(18) enableGoogleMlIntegration = _messages.BooleanField(19) insightsConfig = _messages.MessageField('InsightsConfig', 20) instanceVersion = _messages.StringField(21) diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/storagetransfer/v1/storagetransfer_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/storagetransfer/v1/storagetransfer_v1_messages.py index 176fddc218..59470c8b40 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/storagetransfer/v1/storagetransfer_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/storagetransfer/v1/storagetransfer_v1_messages.py @@ -121,6 +121,8 @@ class AwsS3Data(_messages.Message): `credentials_secret` is specified, do not specify role_arn or aws_access_key. Format: `projects/{project_number}/secrets/{secret_name}` + managedPrivateNetwork: Egress bytes over a Google-managed private network. + This network is shared between other users of Storage Transfer Service. path: Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'. @@ -137,8 +139,9 @@ class AwsS3Data(_messages.Message): bucketName = _messages.StringField(2) cloudfrontDomain = _messages.StringField(3) credentialsSecret = _messages.StringField(4) - path = _messages.StringField(5) - roleArn = _messages.StringField(6) + managedPrivateNetwork = _messages.BooleanField(5) + path = _messages.StringField(6) + roleArn = _messages.StringField(7) class AzureBlobStorageData(_messages.Message): diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/testing/v1/testing_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/testing/v1/testing_v1_messages.py index a41fa1781d..27adff3173 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/testing/v1/testing_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/testing/v1/testing_v1_messages.py @@ -2416,3 +2416,5 @@ class XcodeVersion(_messages.Message): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + TestingApplicationDetailServiceGetApkDetailsRequest, 'bundleLocation_gcsPath', 'bundleLocation.gcsPath') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/vmwareengine/v1/vmwareengine_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/vmwareengine/v1/vmwareengine_v1_messages.py index 2aae1f4d3d..7eb338aff8 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/vmwareengine/v1/vmwareengine_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/vmwareengine/v1/vmwareengine_v1_messages.py @@ -6377,3 +6377,9 @@ class TypeValueValuesEnum(_messages.Enum): StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + VmwareengineProjectsLocationsPrivateCloudsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + VmwareengineProjectsLocationsPrivateCloudsClustersGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + VmwareengineProjectsLocationsPrivateCloudsHcxActivationKeysGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/workstations/v1/workstations_v1_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/workstations/v1/workstations_v1_messages.py index 8e36f2a534..4218284091 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/workstations/v1/workstations_v1_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/workstations/v1/workstations_v1_messages.py @@ -2228,3 +2228,7 @@ class WorkstationsProjectsLocationsWorkstationClustersWorkstationConfigsWorkstat StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + WorkstationsProjectsLocationsWorkstationClustersWorkstationConfigsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + WorkstationsProjectsLocationsWorkstationClustersWorkstationConfigsWorkstationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/workstations/v1beta/workstations_v1beta_messages.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/workstations/v1beta/workstations_v1beta_messages.py index dcb89040b1..019bb085ed 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/workstations/v1beta/workstations_v1beta_messages.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/apis/workstations/v1beta/workstations_v1beta_messages.py @@ -2174,3 +2174,7 @@ class WorkstationsProjectsLocationsWorkstationClustersWorkstationConfigsWorkstat StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') +encoding.AddCustomJsonFieldMapping( + WorkstationsProjectsLocationsWorkstationClustersWorkstationConfigsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') +encoding.AddCustomJsonFieldMapping( + WorkstationsProjectsLocationsWorkstationClustersWorkstationConfigsWorkstationsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/gapic_clients/spanner_v1/types/transaction.py b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/gapic_clients/spanner_v1/types/transaction.py index 2152b2255a..40b4d19161 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/gapic_clients/spanner_v1/types/transaction.py +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/gapic_clients/spanner_v1/types/transaction.py @@ -60,10 +60,9 @@ class TransactionOptions(proto.Message): (where Spanner will select a timestamp such that the read is guaranteed to see the effects of all transactions that have committed before the start of the read). Snapshot read-only - transactions do not need to be committed. - - Queries on change streams must be performed with the snapshot - read-only transaction mode, specifying a strong read. Please see + transactions do not need to be committed. Queries on change + streams must be performed with the snapshot read-only transaction + mode, specifying a strong read. See [TransactionOptions.ReadOnly.strong][google.spanner.v1.TransactionOptions.ReadOnly.strong] for more details. diff --git a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/regen_apis_config.yaml b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/regen_apis_config.yaml index 74177babe4..f564bb0559 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/generated_clients/regen_apis_config.yaml +++ b/google-cloud-sdk/lib/googlecloudsdk/generated_clients/regen_apis_config.yaml @@ -1287,9 +1287,11 @@ apis: v1alpha1: discovery_doc: sasportal_v1alpha1.json seclm: + v1: + discovery_doc: seclm_v1.json + default: true v1alpha: discovery_doc: seclm_v1alpha.json - default: true secretmanager: v1: discovery_doc: secretmanager_v1.json diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/configdelivery/v1alpha/ResourceBundleSelector.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/configdelivery/v1alpha/ResourceBundleSelector.yaml index 2a8a405991..6392e89d12 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/schemas/configdelivery/v1alpha/ResourceBundleSelector.yaml +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/configdelivery/v1alpha/ResourceBundleSelector.yaml @@ -3,9 +3,6 @@ $schema: "http://json-schema.org/draft-06/schema#" title: configdelivery v1alpha ResourceBundleSelector export schema description: A gcloud export/import command YAML validation schema. type: object -required: -- resourceBundle -- tag additionalProperties: false properties: cloudBuildRepository: @@ -15,13 +12,6 @@ properties: $ref: CloudBuildRepository.yaml resourceBundle: description: |- - resource_bundle refers to a resource bundle that is directly pushed by the - user. Format: projects/{p}/locations/{l}/resourceBundles/{pkg} - type: string - tag: - description: |- - tag will support both the exact version as well as explicit tag. System - will auto-generate tags which are useful such as tracking patch versions - to support the concept of release channels. examples: v1.0.1 or v1.1.* or - v1-stable - type: string + resource_bundle refers to a resource bundle that will contain + configuration. + $ref: ResourceBundleTag.yaml diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/configdelivery/v1alpha/ResourceBundleTag.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/configdelivery/v1alpha/ResourceBundleTag.yaml new file mode 100644 index 0000000000..0477098d92 --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/configdelivery/v1alpha/ResourceBundleTag.yaml @@ -0,0 +1,22 @@ +$schema: "http://json-schema.org/draft-06/schema#" + +title: configdelivery v1alpha ResourceBundleTag export schema +description: A gcloud export/import command YAML validation schema. +type: object +required: +- name +- tag +additionalProperties: false +properties: + name: + description: |- + Name of the ResourceBundle. Format is + projects/{p}/locations/{l}/resourceBundles/{r}. + type: string + tag: + description: |- + tag will support both the exact version as well as explicit tag. System + will auto-generate tags which are useful such as tracking patch versions + to support the concept of release channels. examples: v1.0.1 or v1.1.* or + v1-stable + type: string diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/AppendOnly.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/AppendOnly.yaml new file mode 100644 index 0000000000..2b5be1977d --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/AppendOnly.yaml @@ -0,0 +1,27 @@ +$schema: "http://json-schema.org/draft-06/schema#" + +title: datastream v1 AppendOnly export schema +description: A gcloud export/import command YAML validation schema. +type: object +additionalProperties: false +properties: + COMMENT: + type: object + description: User specified info ignored by gcloud import. + additionalProperties: false + properties: + template-id: + type: string + region: + type: string + description: + type: string + date: + type: string + version: + type: string + UNKNOWN: + type: array + description: Unknown API fields that cannot be imported. + items: + type: string diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/BigQueryDestinationConfig.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/BigQueryDestinationConfig.yaml index d11ef09db1..eacb47ad4a 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/BigQueryDestinationConfig.yaml +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/BigQueryDestinationConfig.yaml @@ -27,7 +27,7 @@ properties: type: string appendOnly: description: Append only mode - type: appendonly + $ref: AppendOnly.yaml dataFreshness: description: |- The guaranteed data freshness (in seconds) when querying tables created by @@ -37,7 +37,7 @@ properties: type: string merge: description: The standard mode - type: merge + $ref: Merge.yaml singleTargetDataset: description: Single destination dataset. $ref: SingleTargetDataset.yaml diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/Merge.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/Merge.yaml new file mode 100644 index 0000000000..bf5fb52b4f --- /dev/null +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/datastream/v1/Merge.yaml @@ -0,0 +1,27 @@ +$schema: "http://json-schema.org/draft-06/schema#" + +title: datastream v1 Merge export schema +description: A gcloud export/import command YAML validation schema. +type: object +additionalProperties: false +properties: + COMMENT: + type: object + description: User specified info ignored by gcloud import. + additionalProperties: false + properties: + template-id: + type: string + region: + type: string + description: + type: string + date: + type: string + version: + type: string + UNKNOWN: + type: array + description: Unknown API fields that cannot be imported. + items: + type: string diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/networksecurity/v1/TlsInspectionPolicy.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/networksecurity/v1/TlsInspectionPolicy.yaml index 9b32bf01bc..8ec7306ecf 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/schemas/networksecurity/v1/TlsInspectionPolicy.yaml +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/networksecurity/v1/TlsInspectionPolicy.yaml @@ -34,22 +34,48 @@ properties: string has a relative resource path following the form "projects/{project}/locations/{location}/caPools/{ca_pool}". type: string + customTlsFeatures: + description: |- + List of custom TLS cipher suites selected. This field is valid only if the + selected tls_feature_profile is CUSTOM. The + compute.SslPoliciesService.ListAvailableFeatures method returns the set of + features that can be specified in this list. + type: array + items: + type: string description: description: Free-text description of the resource. type: string excludePublicCaSet: description: |- - If FALSE (the default), use our default set of public CAs in addition to - any CAs specified in trust_config. These public CAs are currently based on - the Mozilla Root Program and are subject to change over time. If TRUE, do - not accept our default set of public CAs. Only CAs specified in - trust_config will be accepted. This defaults to FALSE (use public CAs in - addition to trust_config) for backwards compatibility, but trusting public - root CAs is *not recommended* unless the traffic in question is outbound - to public web servers. When possible, prefer setting this to "false" and - explicitly specifying trusted CAs and certificates in a TrustConfig. Note - that Secure Web Proxy does not yet honor this field. + If FALSE (the default), use our default set of public CAs in addition + to any CAs specified in trust_config. These public CAs are currently + based on the Mozilla Root Program and are subject to change over time. + If TRUE, do not accept our default set of public CAs. Only CAs + specified in trust_config will be accepted. This defaults to FALSE + (use public CAs in addition to trust_config) for backwards + compatibility, but trusting public root CAs is *not recommended* + unless the traffic in question is outbound to public web servers. When + possible, prefer setting this to "false" and explicitly specifying + trusted CAs and certificates in a TrustConfig. Note that Secure Web + Proxy does not yet honor this field. type: boolean + minTlsVersion: + description: |- + Minimum TLS version that the firewall should use when negotiating + connections with both clients and servers. If this is not set, then + the default value is to allow the broadest set of clients and servers + (TLS 1.0 or higher). Setting this to more restrictive values may + improve security, but may also prevent the firewall from connecting to + some clients or servers. Note that Secure Web Proxy does not yet honor + this field. + type: string + enum: + - TLS_1_0 + - TLS_1_1 + - TLS_1_2 + - TLS_1_3 + - TLS_VERSION_UNSPECIFIED name: description: |- Name of the resource. Name is of the form projects/{projec @@ -57,12 +83,26 @@ properties: tls_inspection_policy should match the pattern:(^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$). type: string + tlsFeatureProfile: + description: |- + The selected Profile. If this is not set, then the default value is to + allow the broadest set of clients and servers ("PROFILE_COMPATIBLE"). + Setting this to more restrictive values may improve security, but may + also prevent the TLS inspection proxy from connecting to some clients + or servers. Note that Secure Web Proxy does not yet honor this field. + type: string + enum: + - PROFILE_COMPATIBLE + - PROFILE_CUSTOM + - PROFILE_MODERN + - PROFILE_RESTRICTED + - PROFILE_UNSPECIFIED trustConfig: description: |- - A TrustConfig resource used when making a connection to the TLS server. - This is a relative resource path following the form + A TrustConfig resource used when making a connection to the TLS + server. This is a relative resource path following the form "projects/{project}/locations/{location}/trustConfigs/{trust_config}". This is necessary to intercept TLS connections to servers with - certificates signed by a private CA or self-signed certificates. Note that - Secure Web Proxy does not yet honor this field. + certificates signed by a private CA or self-signed certificates. Note + that Secure Web Proxy does not yet honor this field. type: string diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1/CDNPolicy.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1/CDNPolicy.yaml index 7702f649d7..63af984784 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1/CDNPolicy.yaml +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1/CDNPolicy.yaml @@ -104,11 +104,11 @@ properties: TTLs must be >= `0` (where `0` is "always revalidate") and <= `86400s` (1 day) You can set only the following status codes: - HTTP redirection (`300`, `301`, `302`, `307`, or `308`) - Client error (`400`, `403`, - `404`, `405`, `410`, or `451`) - Server error (`500`, `501`, `502`, `503`, - or `504`) When you specify an explicit `negative_caching_policy`, ensure - that you also specify a cache TTL for all response codes that you wish to - cache. The CDNPolicy doesn't apply any default negative caching when a - policy exists. + `404`, `405`, `410`, `421`, or `451`) - Server error (`500`, `501`, `502`, + `503`, or `504`) When you specify an explicit `negative_caching_policy`, + ensure that you also specify a cache TTL for all response codes that you + wish to cache. The CDNPolicy doesn't apply any default negative caching + when a policy exists. $ref: NegativeCachingPolicyValue.yaml signedRequestKeyset: description: |- diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1/HeaderMatch.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1/HeaderMatch.yaml index d0e2d0a251..a07b7493bb 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1/HeaderMatch.yaml +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1/HeaderMatch.yaml @@ -34,7 +34,9 @@ properties: set. type: string headerName: - description: The header name to match on. + description: |- + The header name to match on. The `:method` pseudo- header may be used to + match on the request HTTP method. type: string invertMatch: description: |- diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/CDNPolicy.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/CDNPolicy.yaml index ade5a91f9b..141ea58337 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/CDNPolicy.yaml +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/CDNPolicy.yaml @@ -102,11 +102,13 @@ properties: apply: - Omitting the policy and leaving `negative_caching` enabled uses the default TTLs for each status code, defined in `negative_caching`. - TTLs must be >= `0` (where `0` is "always revalidate") and <= `86400s` (1 - day) Only the following status codes can be set: - HTTP redirection (3xx) - - Client error (4xx) - Server error (5xx) When you specify an explicit - `negative_caching_policy`, ensure that you also specify a cache TTL for - all response codes that you wish to cache. The CDNPolicy doesn't apply any - default negative caching when a policy exists. + day) You can set only the following status codes: - HTTP redirection + (`300`, `301`, `302`, `307`, or `308`) - Client error (`400`, `403`, + `404`, `405`, `410`, `421`, or `451`) - Server error (`500`, `501`, `502`, + `503`, or `504`) When you specify an explicit `negative_caching_policy`, + ensure that you also specify a cache TTL for all response codes that you + wish to cache. The CDNPolicy doesn't apply any default negative caching + when a policy exists. $ref: NegativeCachingPolicyValue.yaml signedRequestKeyset: description: |- diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/CDNPolicyCacheKeyPolicy.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/CDNPolicyCacheKeyPolicy.yaml index 2865a2253c..c09b21d354 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/CDNPolicyCacheKeyPolicy.yaml +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/CDNPolicyCacheKeyPolicy.yaml @@ -27,11 +27,13 @@ properties: type: string excludeHost: description: |- - If `true`, requests to different hosts are cached separately. - **Important:** Enable this only if the hosts share the same origin and - content. Removing the host from the cache key might inadvertently result - in different objects being cached than intended, depending on which route - the first user matched. + If `true`, exclude a request's host from the cache key. Requests with + different hosts share content in the cache. If `false` (the default), a + request's host is included in the cache key. Requests with different hosts + are stored independently. **Important:** Enable this only if the hosts + share the same origin and content. Removing the host from the cache key + might inadvertently result in different objects being cached than + intended, depending on which route the first user matched. type: boolean excludeQueryString: description: |- diff --git a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/HeaderMatch.yaml b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/HeaderMatch.yaml index 337e748aa3..84c51753d9 100644 --- a/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/HeaderMatch.yaml +++ b/google-cloud-sdk/lib/googlecloudsdk/schemas/networkservices/v1alpha1/HeaderMatch.yaml @@ -34,7 +34,9 @@ properties: set. type: string headerName: - description: The header name to match on. + description: |- + The header name to match on. The `:method` pseudo- header may be used to + match on the request HTTP method. type: string invertMatch: description: |- diff --git a/google-cloud-sdk/lib/surface/backup_dr/backup_plans/list.yaml b/google-cloud-sdk/lib/surface/backup_dr/backup_plans/list.yaml index d8a4ba2395..599b5f7b63 100644 --- a/google-cloud-sdk/lib/surface/backup_dr/backup_plans/list.yaml +++ b/google-cloud-sdk/lib/surface/backup_dr/backup_plans/list.yaml @@ -24,16 +24,13 @@ output: format: | - table( - name.basename():label=NAME:sort=2, - name.scope("locations").segment(0):label=LOCATION, - state:label=STATUS, - createTime.date():sort=1:reverse, - backupRules[]:format= - 'table( - ruleId:label=BACKUP_RULE_ID, - backupRetentionDays:label=RETENTION_DAYS, - standardSchedule.recurrenceType:label=RECURRENCE_TYPE, - backupVault.basename():label=BACKUP_VAULT_NAME - )' + json( + name, + state, + createTime.date(), + backupRules[].ruleId, + backupRules[].backupRetentionDays, + backupRules[].standardSchedule.recurrenceType, + backupRules[].backupVault ) +# TODO: b/336698260 Update the format to table format diff --git a/google-cloud-sdk/lib/surface/backup_dr/backup_vaults/list.yaml b/google-cloud-sdk/lib/surface/backup_dr/backup_vaults/list.yaml index 5a2755d1c2..990acd4839 100644 --- a/google-cloud-sdk/lib/surface/backup_dr/backup_vaults/list.yaml +++ b/google-cloud-sdk/lib/surface/backup_dr/backup_vaults/list.yaml @@ -26,10 +26,9 @@ format: | table( name.basename(), - description, - enforcedRetentionDuration, - deletable, - state, - backupInstanceCount, - size + createTime:label=CREATED, + state:label=STATUS, + name.scope("locations").segment(0):label=LOCATION, + totalStoredBytes:label=STORED_BYTES, + enforcedRetentionDuration:label=ENFORCED_RETENTION ) diff --git a/google-cloud-sdk/lib/surface/backup_dr/backups/delete.py b/google-cloud-sdk/lib/surface/backup_dr/backups/delete.py new file mode 100644 index 0000000000..5373ade4f5 --- /dev/null +++ b/google-cloud-sdk/lib/surface/backup_dr/backups/delete.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +"""Deletes a Backup and DR Backup.""" + + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from apitools.base.py import exceptions as apitools_exceptions +from googlecloudsdk.api_lib.backupdr import util +from googlecloudsdk.api_lib.backupdr.backups import BackupsClient +from googlecloudsdk.api_lib.util import exceptions +from googlecloudsdk.calliope import base +from googlecloudsdk.command_lib.backupdr import flags +from googlecloudsdk.core import log +from googlecloudsdk.core.console import console_io + + +@base.DefaultUniverseOnly +@base.Hidden +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +class DeleteAlpha(base.DeleteCommand): + """Delete the specified Backup.""" + + detailed_help = { + 'BRIEF': 'Deletes a specific backup', + 'DESCRIPTION': '{description}', + 'EXAMPLES': """\ + To delete a backup `sample-backup` in backup vault `sample-vault`, data source `sample-ds`, project `sample-project` and location `us-central1` , run: + + $ {command} sample-backup --backup-vault=sample-vault --data-source=sample-ds --project=sample-project --location=us-central1 + """, + } + + @staticmethod + def Args(parser): + """Specifies additional command flags. + + Args: + parser: argparse.Parser: Parser object for command line inputs. + """ + base.ASYNC_FLAG.AddToParser(parser) + base.ASYNC_FLAG.SetDefault(parser, True) + flags.AddBackupResourceArg( + parser, + 'Name of the backup to delete.', + ) + + def Run(self, args): + """Constructs and sends request. + + Args: + args: argparse.Namespace, An object that contains the values for the + arguments specified in the .Args() method. + + Returns: + ProcessHttpResponse of the request made. + """ + client = BackupsClient() + is_async = args.async_ + + backup = args.CONCEPTS.backup.Parse() + + console_io.PromptContinue( + message='The backup will be deleted. You cannot undo this action.', + default=True, + cancel_on_no=True, + ) + + try: + operation = client.Delete(backup) + except apitools_exceptions.HttpError as e: + raise exceptions.HttpException(e, util.HTTP_ERROR_FORMAT) + if is_async: + log.DeletedResource( + operation.name, + kind='backup', + is_async=True, + details=( + 'Run the [gcloud backup-dr operations describe] command ' + 'to check the status of this operation.' + ), + ) + return operation + + response = client.WaitForOperation( + operation_ref=client.GetOperationRef(operation), + message=( + 'Deleting backup [{}]. (This operation usually takes 5 mins but' + ' could take upto 60 mins.)'.format(backup.RelativeName()) + ), + has_result=False, + ) + log.DeletedResource(backup.RelativeName(), kind='backup') + + return response diff --git a/google-cloud-sdk/lib/surface/backup_dr/backups/restore/__init__.py b/google-cloud-sdk/lib/surface/backup_dr/backups/restore/__init__.py new file mode 100644 index 0000000000..d3b2c2edb1 --- /dev/null +++ b/google-cloud-sdk/lib/surface/backup_dr/backups/restore/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google Inc. All Rights Reserved. +# +# 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. +"""Command group for Backup and DR Backup Restore.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.calliope import base + + +@base.DefaultUniverseOnly +@base.Hidden +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +class Restore(base.Group): + """Manage restore operations for resources.""" diff --git a/google-cloud-sdk/lib/surface/backup_dr/backups/restore/compute.py b/google-cloud-sdk/lib/surface/backup_dr/backups/restore/compute.py new file mode 100644 index 0000000000..a7083c4b07 --- /dev/null +++ b/google-cloud-sdk/lib/surface/backup_dr/backups/restore/compute.py @@ -0,0 +1,115 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +"""Restores a Compute Instance Backup.""" + + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from apitools.base.py import exceptions as apitools_exceptions +from googlecloudsdk.api_lib.backupdr import util +from googlecloudsdk.api_lib.backupdr.backups import BackupsClient +from googlecloudsdk.api_lib.backupdr.backups import ComputeRestoreConfig +from googlecloudsdk.api_lib.util import exceptions +from googlecloudsdk.calliope import base +from googlecloudsdk.command_lib.backupdr import flags +from googlecloudsdk.command_lib.backupdr.restore import compute_flags +from googlecloudsdk.core import log + + +@base.DefaultUniverseOnly +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +@base.Hidden +class Compute(base.Command): + """Restores a Compute Engine VM Backup.""" + + detailed_help = { + 'BRIEF': 'Restores the specified backup', + 'DESCRIPTION': '{description}', + 'EXAMPLES': """\ + To restore a backup `sample-backup` in project `sample-project` and location `us-central1`, + with `sample-datastore` and `sample-backup-vault`, and additional target properties, run: + + $ {command} sample-backup --project=sample-project --location=us-central1 --backup-vault=sample-backup-vault --datasource=sample-datasource -- + """, + } + + @staticmethod + def Args(parser): + """Specifies additional command flags. + + Args: + parser: argparse.Parser: Parser object for command line inputs. + """ + base.ASYNC_FLAG.AddToParser(parser) + base.ASYNC_FLAG.SetDefault(parser, True) + flags.AddBackupResourceArg( + parser, 'The backup of a resource to be restored.' + ) + + compute_flags.AddNameArg(parser) + compute_flags.AddTargetZoneArg(parser) + compute_flags.AddTargetProjectArg(parser) + + def Run(self, args): + """Constructs and sends request. + + Args: + args: argparse.Namespace, An object that contains the values for the + arguments specified in the .Args() method. + + Returns: + ProcessHttpResponse of the request made. + """ + client = BackupsClient() + is_async = args.async_ + + backup = args.CONCEPTS.backup.Parse() + restore_config = ComputeRestoreConfig() + restore_config['Name'] = args.name + restore_config['TargetZone'] = args.target_zone + restore_config['TargetProject'] = ( + args.CONCEPTS.target_project.Parse().RelativeName() + ) + try: + operation = client.RestoreCompute(backup, restore_config) + except apitools_exceptions.HttpError as e: + raise exceptions.HttpException(e, util.HTTP_ERROR_FORMAT) from e + + if is_async: + log.RestoredResource( + backup.Name(), + kind='backup', + is_async=True, + details=( + 'Run the [gcloud backup-dr operations describe] command to check' + ' the status of this operation [{}]'.format(operation.name) + ), + ) + return operation + + # For sync operation + return client.WaitForOperation( + operation_ref=client.GetOperationRef(operation), + message=( + 'Restoring backup' + ' [{}].' + ' (This operation could take upto 15 minutes.)'.format( + backup.Name() + ) + ), + has_result=False, + ) diff --git a/google-cloud-sdk/lib/surface/builds/submit.py b/google-cloud-sdk/lib/surface/builds/submit.py index eb44f6101f..307c254dc0 100644 --- a/google-cloud-sdk/lib/surface/builds/submit.py +++ b/google-cloud-sdk/lib/surface/builds/submit.py @@ -18,6 +18,8 @@ from __future__ import division from __future__ import unicode_literals +import textwrap + from googlecloudsdk.api_lib.cloudbuild import cloudbuild_util from googlecloudsdk.calliope import base from googlecloudsdk.command_lib.builds import flags @@ -114,24 +116,28 @@ def _CommonArgs(parser): ) parser.add_argument( '--dir', - help="""\ -Directory, relative to the source root, in which to run the build. This is used when the build source is a 2nd-gen Cloud Build repository resource. -This must be a relative path. If a step's `dir` is specified and is an absolute -path, this value is ignored for that step's execution. -""", + help=textwrap.dedent("""\ + Directory, relative to the source root, in which to run the build. This is + used when the build source is a 2nd-gen Cloud Build repository resource, or + a Developer Connect GitRepositoryLink resource. This must be a relative + path. If a step's `dir` is specified and is an absolute path, this value is + ignored for that step's execution. + """), ) parser.add_argument( '--revision', - help="""\ -Revision to fetch from the Git repository such as a branch, a tag, a commit -SHA, or any Git ref to run the build. This is used when the build source is a 2nd-gen Cloud Build repository resource. - -Cloud Build uses `git fetch` to fetch the revision from the Git repository; -therefore make sure that the string you provide for `revision` is parsable by -the command. For information on string values accepted by `git fetch`, see -https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on -`git fetch`, see https://git-scm.com/docs/git-fetch. -""", + help=textwrap.dedent("""\ + Revision to fetch from the Git repository such as a branch, a tag, a commit + SHA, or any Git ref to run the build. This is used when the build source is + a 2nd-gen Cloud Build repository resource, or a Developer Connect + GitRepositoryLink resource. + + Cloud Build uses `git fetch` to fetch the revision from the Git repository; + therefore make sure that the string you provide for `revision` is parsable + by the command. For information on string values accepted by `git fetch`, + see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For + information on `git fetch`, see https://git-scm.com/docs/git-fetch. +"""), ) return worker_pools @@ -176,6 +182,10 @@ class Submit(base.CreateCommand): To submit a build with source from a 2nd-gen Cloud Build repository resource `projects/my-project/locations/us-west1/connections/my-conn/repositories/my-repo`: $ {command} "projects/my-project/locations/us-west1/connections/my-conn/repositories/my-repo" --revision=main + + To submit a build with source from a Developer Connect GitRepositoryLink resource `projects/my-project/locations/us-west1/connections/my-conn/gitRepositoryLinks/my-repo-link`: + + $ {command} "projects/my-project/locations/us-west1/connections/my-conn/gitRepositoryLinks/my-repo-link" --revision=main """, } diff --git a/google-cloud-sdk/lib/surface/compute/instance_templates/create_with_container.py b/google-cloud-sdk/lib/surface/compute/instance_templates/create_with_container.py index 36200044b5..7e159dce57 100644 --- a/google-cloud-sdk/lib/surface/compute/instance_templates/create_with_container.py +++ b/google-cloud-sdk/lib/surface/compute/instance_templates/create_with_container.py @@ -77,6 +77,8 @@ def _Args(parser, instances_flags.AddIPv6PrefixLengthArgs(parser) labels_util.AddCreateLabelsFlags(parser) instances_flags.AddPrivateNetworkIpArgs(parser) + instances_flags.AddStackTypeArgs(parser) + instances_flags.AddIpv6NetworkTierArgs(parser) if enable_guest_accelerators: instances_flags.AddAcceleratorArgs(parser) @@ -460,8 +462,6 @@ def Args(parser): instances_flags.AddLocalNvdimmArgs(parser) instances_flags.AddPrivateIpv6GoogleAccessArgForTemplate( parser, utils.COMPUTE_ALPHA_API_VERSION) - instances_flags.AddStackTypeArgs(parser) - instances_flags.AddIpv6NetworkTierArgs(parser) instances_flags.AddIPv6AddressAlphaArgs(parser) instances_flags.AddIPv6PrefixLengthAlphaArgs(parser) instances_flags.AddInternalIPv6AddressArgs(parser) diff --git a/google-cloud-sdk/lib/surface/compute/instances/create_with_container.py b/google-cloud-sdk/lib/surface/compute/instances/create_with_container.py index c598e2b2e2..c54a5281c7 100644 --- a/google-cloud-sdk/lib/surface/compute/instances/create_with_container.py +++ b/google-cloud-sdk/lib/surface/compute/instances/create_with_container.py @@ -80,6 +80,8 @@ def _Args(parser, instances_flags.AddIPv6AddressArgs(parser) instances_flags.AddIPv6PrefixLengthArgs(parser) labels_util.AddCreateLabelsFlags(parser) + instances_flags.AddStackTypeArgs(parser) + instances_flags.AddIpv6NetworkTierArgs(parser) parser.add_argument( '--description', help='Specifies a textual description of the instances.') @@ -413,8 +415,6 @@ def Args(parser): instances_flags.AddPublicDnsArgs(parser, instance=True) instances_flags.AddPrivateIpv6GoogleAccessArg( parser, utils.COMPUTE_ALPHA_API_VERSION) - instances_flags.AddStackTypeArgs(parser) - instances_flags.AddIpv6NetworkTierArgs(parser) instances_flags.AddHostErrorTimeoutSecondsArgs(parser) instances_flags.AddLocalSsdRecoveryTimeoutArgs(parser) instances_flags.AddNumaNodeCountArgs(parser) diff --git a/google-cloud-sdk/lib/surface/compute/instances/ops_agents/policies/create.py b/google-cloud-sdk/lib/surface/compute/instances/ops_agents/policies/create.py index d9392f131d..b8ed8ee32f 100644 --- a/google-cloud-sdk/lib/surface/compute/instances/ops_agents/policies/create.py +++ b/google-cloud-sdk/lib/surface/compute/instances/ops_agents/policies/create.py @@ -124,6 +124,7 @@ def Run(self, args): @base.Hidden +@base.UniverseCompatible @base.ReleaseTracks(base.ReleaseTrack.GA) class Create(base.Command): """Create a Google Cloud's operations suite agents (Ops Agents) policy. @@ -156,14 +157,14 @@ def Args(parser): '--file', required=True, help="""\ - The YAML file with the Cloud Ops Policy Assignment to create. For - information about the Cloud Ops Policy Assignment format, see [PLACEHOLDER for our public doc].""", + YAML file with the Cloud Ops Agents Policy to create. For + information about the Cloud Ops Agents Policy format, see [PLACEHOLDER for our public doc].""", ) parser.add_argument( '--zone', required=True, help="""\ - this is zone.""", + Zone in which to create the OS Policy Assignment.""", ) parser.add_argument( '--dry-run', @@ -216,9 +217,8 @@ def Run(self, args): complete_os_policy_assignment = encoding.PyValueToMessage( osconfig.OSPolicyAssignment, complete_os_policy_assignment_obj ) - # TODO: b/334112329 - Fix yaml marshaling policy = to_cloud_ops_agents.ConvertOsPolicyAssignmentToCloudOpsAgentPolicy( complete_os_policy_assignment ) - return policy + return policy.ToPyValue() diff --git a/google-cloud-sdk/lib/surface/compute/instances/ops_agents/policies/describe.py b/google-cloud-sdk/lib/surface/compute/instances/ops_agents/policies/describe.py index 6d2d98fd13..36c772b170 100644 --- a/google-cloud-sdk/lib/surface/compute/instances/ops_agents/policies/describe.py +++ b/google-cloud-sdk/lib/surface/compute/instances/ops_agents/policies/describe.py @@ -22,6 +22,7 @@ from googlecloudsdk.api_lib.compute.instances.ops_agents import exceptions as ops_agents_exceptions from googlecloudsdk.api_lib.compute.instances.ops_agents.converters import guest_policy_to_ops_agents_policy_converter as to_ops_agents from googlecloudsdk.api_lib.compute.instances.ops_agents.converters import os_policy_assignment_to_cloud_ops_agents_policy_converter as to_ops_agents_policy +from googlecloudsdk.api_lib.compute.instances.ops_agents.validators import cloud_ops_agents_policy_validator from googlecloudsdk.api_lib.compute.instances.ops_agents.validators import guest_policy_validator from googlecloudsdk.api_lib.compute.os_config import utils as osconfig_api_utils from googlecloudsdk.calliope import base @@ -65,10 +66,8 @@ class DescribeOsConfig(base.DescribeCommand): """ detailed_help = { - 'DESCRIPTION': - '{description}', - 'EXAMPLES': - """\ + 'DESCRIPTION': '{description}', + 'EXAMPLES': """\ To describe an Ops Agents policy named ``ops-agents-test-policy'' in the current project, run: @@ -87,29 +86,31 @@ def Run(self, args): project = properties.VALUES.core.project.GetOrFail() guest_policy_uri_path = osconfig_command_utils.GetGuestPolicyUriPath( - 'projects', project, args.POLICY_ID) + 'projects', project, args.POLICY_ID + ) client = osconfig_api_utils.GetClientInstance( - release_track, api_version_override='v1beta') + release_track, api_version_override='v1beta' + ) service = client.projects_guestPolicies messages = osconfig_api_utils.GetClientMessages( - release_track, api_version_override='v1beta') + release_track, api_version_override='v1beta' + ) get_request = messages.OsconfigProjectsGuestPoliciesGetRequest( - name=guest_policy_uri_path) + name=guest_policy_uri_path + ) try: get_response = service.Get(get_request) except apitools_exceptions.HttpNotFoundError: - raise ops_agents_exceptions.PolicyNotFoundError( - policy_id=args.POLICY_ID) + raise ops_agents_exceptions.PolicyNotFoundError(policy_id=args.POLICY_ID) if not guest_policy_validator.IsOpsAgentPolicy(get_response): - raise ops_agents_exceptions.PolicyNotFoundError( - policy_id=args.POLICY_ID) + raise ops_agents_exceptions.PolicyNotFoundError(policy_id=args.POLICY_ID) try: ops_agents_policy = to_ops_agents.ConvertGuestPolicyToOpsAgentPolicy( - get_response) + get_response + ) except calliope_exceptions.BadArgumentException: - raise ops_agents_exceptions.PolicyMalformedError( - policy_id=args.POLICY_ID) + raise ops_agents_exceptions.PolicyMalformedError(policy_id=args.POLICY_ID) return ops_agents_policy @@ -145,10 +146,8 @@ class Describe(base.DescribeCommand): """ detailed_help = { - 'DESCRIPTION': - '{description}', - 'EXAMPLES': - """\ + 'DESCRIPTION': '{description}', + 'EXAMPLES': """\ To describe an Ops Agents policy named ``ops-agents-test-policy'' in the current project, run: @@ -174,7 +173,8 @@ def Args(parser): '--zone', required=True, help="""\ - this is zone.""") + this is zone.""", + ) def Run(self, args): """See base class.""" @@ -183,10 +183,8 @@ def Run(self, args): parent_path = osconfig_command_utils.GetProjectLocationUriPath( project, args.zone ) - assignment_id = ( - osconfig_command_utils.GetOsPolicyAssignmentRelativePath( - parent_path, args.POLICY_ID - ) + assignment_id = osconfig_command_utils.GetOsPolicyAssignmentRelativePath( + parent_path, args.POLICY_ID ) client = osconfig_api_utils.GetClientInstance(release_track) service = client.projects_locations_osPolicyAssignments @@ -202,13 +200,15 @@ def Run(self, args): get_response = service.Get(get_request) except apitools_exceptions.HttpNotFoundError: raise ops_agents_exceptions.PolicyNotFoundError(policy_id=args.POLICY_ID) - # TODO: b/315392183 - Add validator to confirm it's OpsAgentsPolicy. try: ops_agents_policy = ( to_ops_agents_policy.ConvertOsPolicyAssignmentToCloudOpsAgentPolicy( get_response ) ) + cloud_ops_agents_policy_validator.ValidateOpsAgentsPolicy( + ops_agents_policy + ) except calliope_exceptions.BadArgumentException: raise ops_agents_exceptions.PolicyMalformedError(policy_id=args.POLICY_ID) - return ops_agents_policy + return ops_agents_policy.ToPyValue() diff --git a/google-cloud-sdk/lib/surface/compute/storage_pools/list.yaml b/google-cloud-sdk/lib/surface/compute/storage_pools/list.yaml index f0968ce7ca..4ca0c051f1 100644 --- a/google-cloud-sdk/lib/surface/compute/storage_pools/list.yaml +++ b/google-cloud-sdk/lib/surface/compute/storage_pools/list.yaml @@ -4,7 +4,7 @@ description: | View storage pools. - The compact default output format is explained below: + The compact, default output format is explained below: The type column contains all three types -- storage pool type, capacity and performance. For example, the value @@ -24,7 +24,7 @@ * Adv: Advanced * Std: Standard - The capacity, iops and throughput columns describe used, provisioned, the utilization + The capacity column, and standard-performance iops and throughput columns describe the used, provisioned, and the utilization rate. For example, the following value for capacity: 40 / 50 (80%) @@ -32,6 +32,9 @@ means 40 TB of it is used, 50 TB provisioned, and its utilization rate is 80%. The utilization rate is equivalent to used capacity divided by provisioned capacity. + For advanced-performance storage pools, the iops and throughput columns will simply show the + provisioned values. + examples: | To display all storage pools in all regions and zones, run the following command: diff --git a/google-cloud-sdk/lib/surface/container/attached/clusters/register.py b/google-cloud-sdk/lib/surface/container/attached/clusters/register.py index 646bcc29ea..1d198e067d 100644 --- a/google-cloud-sdk/lib/surface/container/attached/clusters/register.py +++ b/google-cloud-sdk/lib/surface/container/attached/clusters/register.py @@ -34,6 +34,7 @@ from googlecloudsdk.command_lib.container.gkemulticloud import endpoint_util from googlecloudsdk.command_lib.container.gkemulticloud import errors from googlecloudsdk.command_lib.container.gkemulticloud import flags +from googlecloudsdk.command_lib.run import exceptions as run_exceptions from googlecloudsdk.command_lib.run import pretty_print from googlecloudsdk.core import exceptions from googlecloudsdk.core.console import console_io @@ -93,6 +94,14 @@ def Args(parser): def Run(self, args): location = resource_args.ParseAttachedClusterResourceArg(args).locationsId + if ( + attached_flags.GetHasPrivateIssuer(args) + and attached_flags.GetDistribution(args) == 'eks' + ): + raise run_exceptions.ArgumentError( + 'Distributions of type "eks" cannot use the `has-private-issuer`' + ' flag.' + ) with endpoint_util.GkemulticloudEndpointOverride(location): cluster_ref = resource_args.ParseAttachedClusterResourceArg(args) manifest = self._get_manifest(args, cluster_ref) diff --git a/google-cloud-sdk/lib/surface/container/clusters/create.py b/google-cloud-sdk/lib/surface/container/clusters/create.py index 9ae111138a..1135518db4 100644 --- a/google-cloud-sdk/lib/surface/container/clusters/create.py +++ b/google-cloud-sdk/lib/surface/container/clusters/create.py @@ -480,6 +480,10 @@ def ParseCreateOptionsBase(args, is_autopilot, get_default, location, ), enable_fqdn_network_policy=get_default('enable_fqdn_network_policy'), enable_nested_virtualization=get_default('enable_nested_virtualization'), + enable_ray_cluster_logging=get_default('enable_ray_cluster_logging'), + enable_ray_cluster_monitoring=get_default( + 'enable_ray_cluster_monitoring' + ), ) @@ -686,6 +690,8 @@ def AttrValue(args, flagname, flag_defaults): 'nestedvirtualization': ( lambda p: flags.AddEnableNestedVirtualizationFlag(p, hidden=False) ), + 'enableRayClusterLogging': flags.AddEnableRayClusterLogging, + 'enableRayClusterMonitoring': flags.AddEnableRayClusterMonitoring, }, BETA: { 'accelerator': lambda p: AddAcceleratorFlag(p, True, True, True, True), @@ -853,6 +859,8 @@ def AttrValue(args, flagname, flag_defaults): 'enableCiliumClusterwideNetworkPolicy': ( flags.AddEnableCiliumClusterwideNetworkPolicyFlag ), + 'enableRayClusterLogging': flags.AddEnableRayClusterLogging, + 'enableRayClusterMonitoring': flags.AddEnableRayClusterMonitoring, }, ALPHA: { 'accelerator': lambda p: AddAcceleratorFlag(p, True, True, True, True), @@ -1029,6 +1037,8 @@ def AttrValue(args, flagname, flag_defaults): 'enableCiliumClusterwideNetworkPolicy': ( flags.AddEnableCiliumClusterwideNetworkPolicyFlag ), + 'enableRayClusterLogging': flags.AddEnableRayClusterLogging, + 'enableRayClusterMonitoring': flags.AddEnableRayClusterMonitoring, }, } @@ -1293,6 +1303,10 @@ def ParseCreateOptions(self, args, location, project_id): ops.enable_cilium_clusterwide_networkpolicy = get_default( 'enable_cilium_clusterwide_networkpolicy' ) + ops.enable_ray_cluster_logging = get_default('enable_ray_cluster_logging') + ops.enable_ray_cluster_monitoring = get_default( + 'enable_ray_cluster_monitoring' + ) return ops @@ -1411,4 +1425,8 @@ def ParseCreateOptions(self, args, location, project_id): ops.enable_cilium_clusterwide_networkpolicy = get_default( 'enable_cilium_clusterwide_networkpolicy' ) + ops.enable_ray_cluster_logging = get_default('enable_ray_cluster_logging') + ops.enable_ray_cluster_monitoring = get_default( + 'enable_ray_cluster_monitoring' + ) return ops diff --git a/google-cloud-sdk/lib/surface/container/clusters/create_auto.py b/google-cloud-sdk/lib/surface/container/clusters/create_auto.py index e72c4f2553..6392318d08 100644 --- a/google-cloud-sdk/lib/surface/container/clusters/create_auto.py +++ b/google-cloud-sdk/lib/surface/container/clusters/create_auto.py @@ -84,6 +84,8 @@ def AddAutoFlags(parser, release_track): flags.AddIPAliasRelatedFlags(parser, autopilot=True) flags.AddEnableConfidentialNodesFlag(parser, hidden=True) flags.AddEnableRayOperatorFlag(parser, hidden=True) + flags.AddEnableRayClusterMonitoring(parser, hidden=True) + flags.AddEnableRayClusterLogging(parser, hidden=True) @base.ReleaseTracks(base.ReleaseTrack.GA) diff --git a/google-cloud-sdk/lib/surface/container/clusters/update.py b/google-cloud-sdk/lib/surface/container/clusters/update.py index a02d8fda94..f6b0597ad4 100644 --- a/google-cloud-sdk/lib/surface/container/clusters/update.py +++ b/google-cloud-sdk/lib/surface/container/clusters/update.py @@ -394,6 +394,8 @@ def Args(parser): flags.AddEnableFqdnNetworkPolicyFlag(group) flags.AddEnableKubeletReadonlyPortFlag(group) flags.AddAutoprovisioningEnableKubeletReadonlyPortFlag(group) + flags.AddEnableRayClusterLogging(group, is_update=True) + flags.AddEnableRayClusterMonitoring(group, is_update=True) def ParseUpdateOptions(self, args, locations): get_default = lambda key: getattr(args, key) @@ -496,6 +498,8 @@ def ParseUpdateOptions(self, args, locations): opts.autoprovisioning_enable_insecure_kubelet_readonly_port = ( args.autoprovisioning_enable_insecure_kubelet_readonly_port ) + opts.enable_ray_cluster_logging = args.enable_ray_cluster_logging + opts.enable_ray_cluster_monitoring = args.enable_ray_cluster_monitoring return opts def Run(self, args): @@ -804,6 +808,22 @@ def Run(self, args): ) except apitools_exceptions.HttpError as error: raise exceptions.HttpException(error, util.HTTP_ERROR_FORMAT) + elif getattr(args, 'enable_ray_cluster_logging', None) is not None: + try: + op_ref = adapter.ModifyRayClusterLoggingConfig( + cluster_ref, + args.enable_ray_cluster_logging, + ) + except apitools_exceptions.HttpError as error: + raise exceptions.HttpException(error, util.HTTP_ERROR_FORMAT) + elif getattr(args, 'enable_ray_cluster_monitoring', None) is not None: + try: + op_ref = adapter.ModifyRayClusterMonitoringConfig( + cluster_ref, + args.enable_ray_cluster_monitoring, + ) + except apitools_exceptions.HttpError as error: + raise exceptions.HttpException(error, util.HTTP_ERROR_FORMAT) else: if args.enable_legacy_authorization is not None: op_ref = adapter.SetLegacyAuthorization( @@ -964,6 +984,8 @@ def Args(parser): flags.AddEnableCiliumClusterwideNetworkPolicyFlag(group, is_update=True) flags.AddEnableKubeletReadonlyPortFlag(group) flags.AddAutoprovisioningEnableKubeletReadonlyPortFlag(group) + flags.AddEnableRayClusterLogging(group, is_update=True) + flags.AddEnableRayClusterMonitoring(group, is_update=True) def ParseUpdateOptions(self, args, locations): get_default = lambda key: getattr(args, key) @@ -1125,6 +1147,8 @@ def ParseUpdateOptions(self, args, locations): opts.autoprovisioning_enable_insecure_kubelet_readonly_port = ( args.autoprovisioning_enable_insecure_kubelet_readonly_port ) + opts.enable_ray_cluster_logging = args.enable_ray_cluster_logging + opts.enable_ray_cluster_monitoring = args.enable_ray_cluster_monitoring return opts @@ -1241,6 +1265,8 @@ def Args(parser): flags.AddEnableCiliumClusterwideNetworkPolicyFlag(group, is_update=True) flags.AddEnableKubeletReadonlyPortFlag(group) flags.AddAutoprovisioningEnableKubeletReadonlyPortFlag(group) + flags.AddEnableRayClusterLogging(group, is_update=True) + flags.AddEnableRayClusterMonitoring(group, is_update=True) def ParseUpdateOptions(self, args, locations): get_default = lambda key: getattr(args, key) @@ -1397,4 +1423,6 @@ def ParseUpdateOptions(self, args, locations): opts.autoprovisioning_enable_insecure_kubelet_readonly_port = ( args.autoprovisioning_enable_insecure_kubelet_readonly_port ) + opts.enable_ray_cluster_logging = args.enable_ray_cluster_logging + opts.enable_ray_cluster_monitoring = args.enable_ray_cluster_monitoring return opts diff --git a/google-cloud-sdk/lib/surface/container/fleet/mesh/debug/proxy_config.py b/google-cloud-sdk/lib/surface/container/fleet/mesh/debug/proxy_config.py index 95a65bdc71..f23fca2062 100644 --- a/google-cloud-sdk/lib/surface/container/fleet/mesh/debug/proxy_config.py +++ b/google-cloud-sdk/lib/surface/container/fleet/mesh/debug/proxy_config.py @@ -57,28 +57,31 @@ def Args(parser): 'all', 'bootstrap', 'cluster', - 'listeners', - 'routes', + 'clusters', + 'endpoint', 'endpoints', 'listener', + 'listeners', 'log', + 'route', + 'routes', 'secret', + 'secrets', ], help_str=( - 'Proxy configuration type, one of' - ' all|clusters|listeners|routes|endpoints|bootstrap|log|secret \n\n' - ' all Retrieves all configuration for the Envoy in the' - ' specified pod \n bootstrap Retrieves bootstrap configuration' - ' for the Envoy in the specified pod \n cluster Retrieves' - ' cluster configuration for the Envoy in the specified pod \n ecds ' - ' Retrieves typed extension configuration for the Envoy in' - ' the specified pod \n endpoint Retrieves endpoint' - ' configuration for the Envoy in the specified pod \n listener ' - ' Retrieves listener configuration for the Envoy in the specified' - ' pod \n log Retrieves logging levels of the Envoy in' - ' the specified pod \n route Retrieves route configuration' - ' for the Envoy in the specified pod \n secret Retrieves' - ' secret configuration for the Envoy in the specified pod \n' + 'Proxy configuration type to retrieve. \n\n all ' + ' Retrieves all configuration for the Envoy in the specified pod \n' + ' bootstrap Retrieves bootstrap configuration for the' + ' Envoy in the specified pod \n clusters/cluster Retrieves' + ' cluster configuration for the Envoy in the specified pod \n' + ' endpoints/endpoint Retrieves endpoint configuration for the' + ' Envoy in the specified pod \n listeners/listener Retrieves' + ' listener configuration for the Envoy in the specified pod \n log ' + ' Retrieves logging levels of the Envoy in the' + ' specified pod \n routes/route Retrieves route' + ' configuration for the Envoy in the specified pod \n' + ' secrets/secret Retrieves secret configuration for the Envoy' + ' in the specified pod \n' ), ) proxy_config_type.AddToParser(parser) diff --git a/google-cloud-sdk/lib/surface/container/fleet/packages/create.py b/google-cloud-sdk/lib/surface/container/fleet/packages/create.py index b11580c96e..48c161c900 100644 --- a/google-cloud-sdk/lib/surface/container/fleet/packages/create.py +++ b/google-cloud-sdk/lib/surface/container/fleet/packages/create.py @@ -33,6 +33,7 @@ @base.Hidden +@base.DefaultUniverseOnly @base.ReleaseTracks(base.ReleaseTrack.ALPHA) class Create(base.CreateCommand): """Create Package Rollouts Fleet Package.""" @@ -47,13 +48,15 @@ def Args(parser): def Run(self, args): """Run the create command.""" client = apis.FleetPackagesClient() - schema_path = apis.GetSchemaPath() data = console_io.ReadFromFileOrStdin(args.source, binary=False) fleet_package = export_util.Import( message_type=client.messages.FleetPackage, stream=data, - schema_path=schema_path, ) + if not fleet_package.variantSelector: + fleet_package.variantSelector = client.messages.VariantSelector( + variantNameTemplate='default' + ) project = command_utils.ProjectFromFleetPackage(fleet_package) location = command_utils.LocationFromFleetPackage(fleet_package) diff --git a/google-cloud-sdk/lib/surface/container/fleet/packages/resource_bundles/releases/create.py b/google-cloud-sdk/lib/surface/container/fleet/packages/resource_bundles/releases/create.py index 025ccec6b1..42d5e70279 100644 --- a/google-cloud-sdk/lib/surface/container/fleet/packages/resource_bundles/releases/create.py +++ b/google-cloud-sdk/lib/surface/container/fleet/packages/resource_bundles/releases/create.py @@ -24,12 +24,21 @@ 'EXAMPLES': """ \ To create Release ``v1.0.0'' for Resource Bundle ``my-bundle'' in ``us-central1'', run: - $ {command} --version=v1.0.0 --resource-bundle=my-bundle --variants=variant-*.yaml + $ {command} --version=v1.0.0 --resource-bundle=my-bundle --source=manifest.yaml + + To create a Release with multiple variants in one directory, run: + + $ {command} --version=v1.0.0 --resource-bundle=my-bundle --source=/manifests/ --variants-pattern=manifest-*.yaml + + To create a Release with multiple variants across multiple directories, ex: + + $ {command} --version=v1.0.0 --resource-bundle=my-bundle --source=/manifests/ --variants-pattern=dir-*/ """, } @base.Hidden +@base.DefaultUniverseOnly @base.ReleaseTracks(base.ReleaseTrack.ALPHA) class Create(base.CreateCommand): """Create Package Rollouts Release.""" @@ -44,18 +53,24 @@ def Args(parser): '--version', required=True, help='Version of the Release to create.' ) flags.AddLifecycleFlag(parser) + flags.AddVariantsPatternFlag(parser) parser.add_argument( - '--variants', + '--source', required=True, - help="""Glob pattern to Variants of the Release. - ex: --variants=manifest.yaml, --variants=/variants/us-```*```.yaml, - --variants=/manifests-dir/""", + help="""Source file or directory to create the Release from. + e.g. ``--source=manifest.yaml'', ``--source=/manifests-dir/'' + Can optionally be paired with the ``--variants-pattern'' arg to create + multiple variants of a Release.""", ) def Run(self, args): """Run the create command.""" client = apis.ReleasesClient() - variants = utils.VariantsFromGlobPattern(args.variants) + utils.ValidateSource(args.source) + glob_pattern = utils.GlobPatternFromSourceAndVariantsPattern( + args.source, args.variants_pattern + ) + variants = utils.VariantsFromGlobPattern(glob_pattern) return client.Create( resource_bundle=args.resource_bundle, diff --git a/google-cloud-sdk/lib/surface/container/fleet/packages/resource_bundles/releases/update.py b/google-cloud-sdk/lib/surface/container/fleet/packages/resource_bundles/releases/update.py index 143da2685c..be878fdd4d 100644 --- a/google-cloud-sdk/lib/surface/container/fleet/packages/resource_bundles/releases/update.py +++ b/google-cloud-sdk/lib/surface/container/fleet/packages/resource_bundles/releases/update.py @@ -22,14 +22,23 @@ _DETAILED_HELP = { 'DESCRIPTION': '{description}', 'EXAMPLES': """ \ - To update Release ``v1.0.0'' of ``cert-manager'' in ``us-central1'', run: + To update Release ``v1.0.0'' for Resource Bundle ``my-bundle'' in ``us-central1'', run: - $ {command} v1.0.0 --location=us-central1 --resource-bundle=cert-manager --lifecycle=published --variants=variant-*.yaml + $ {command} --version=v1.0.0 --resource-bundle=my-bundle --source=manifest.yaml + + To update a Release with multiple variants in one directory, run: + + $ {command} --version=v1.0.0 --resource-bundle=my-bundle --source=/manifests/ --variants-pattern=manifest-*.yaml + + To update a Release with multiple variants across multiple directories, ex: + + $ {command} --version=v1.0.0 --resource-bundle=my-bundle --source=/manifests/ --variants-pattern=dir-*/ """, } @base.Hidden +@base.DefaultUniverseOnly @base.ReleaseTracks(base.ReleaseTrack.ALPHA) class Update(base.UpdateCommand): """Update Package Rollouts Release.""" @@ -42,10 +51,14 @@ def Args(parser): flags.AddLocationFlag(parser) flags.AddResourceBundleFlag(parser) flags.AddLifecycleFlag(parser) + flags.AddVariantsPatternFlag(parser) parser.add_argument( - '--variants', + '--source', required=False, - help='Glob pattern to variants of the Release.', + help="""Source file or directory to update the Release from. + e.g. ``--source=manifest.yaml'', ``--source=/manifests-dir/'' + Can optionally be paired with the ``--variants-pattern'' arg to create + multiple variants of a Release.""", ) parser.add_argument( '--update-mask', @@ -56,7 +69,10 @@ def Args(parser): def Run(self, args): """Run the update command.""" client = apis.ReleasesClient() - variants = utils.VariantsFromGlobPattern(args.variants) + glob_pattern = utils.GlobPatternFromSourceAndVariantsPattern( + args.source, args.variants_pattern + ) + variants = utils.VariantsFromGlobPattern(glob_pattern) return client.Update( release=args.release, diff --git a/google-cloud-sdk/lib/surface/dataflow/yaml/__init__.py b/google-cloud-sdk/lib/surface/dataflow/yaml/__init__.py index 5d44031056..f3ef799900 100644 --- a/google-cloud-sdk/lib/surface/dataflow/yaml/__init__.py +++ b/google-cloud-sdk/lib/surface/dataflow/yaml/__init__.py @@ -22,8 +22,9 @@ from googlecloudsdk.calliope import base -@base.ReleaseTracks(base.ReleaseTrack.BETA) +@base.DefaultUniverseOnly +@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA) class Yaml(base.Group): - """A group of subcommands for launching beam yaml jobs on Dataflow.""" + """A group of subcommands for launching Beam YAML jobs on Dataflow.""" pass diff --git a/google-cloud-sdk/lib/surface/dataflow/yaml/run.py b/google-cloud-sdk/lib/surface/dataflow/yaml/run.py index 4f1fe00291..e044babc29 100644 --- a/google-cloud-sdk/lib/surface/dataflow/yaml/run.py +++ b/google-cloud-sdk/lib/surface/dataflow/yaml/run.py @@ -32,16 +32,18 @@ ) -@base.ReleaseTracks(base.ReleaseTrack.BETA) +@base.DefaultUniverseOnly +@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA) class Run(base.Command): """Runs a job from the specified path.""" detailed_help = { 'DESCRIPTION': ( - 'Runs a job from the specified yaml description or gcs path.' + 'Runs a job from the specified YAML description or ' + 'Cloud Storage path.' ), 'EXAMPLES': """\ - To run a job from yaml, run: + To run a job from YAML, run: $ {command} my-job --yaml-pipeline-file=gs://yaml-path --region=europe-west1 """, @@ -63,13 +65,13 @@ def Args(parser): group.add_argument( '--yaml-pipeline-file', help=( - 'Path of a file defining the yaml pipeline to run. ' + 'Path of a file defining the YAML pipeline to run. ' "(Must be a local file or a URL beginning with 'gs://'.)" ), ) group.add_argument( - '--yaml-pipeline', help='Inline definition of the yaml pipeline to run.' + '--yaml-pipeline', help='Inline definition of the YAML pipeline to run.' ) parser.add_argument( diff --git a/google-cloud-sdk/lib/surface/dataplex/entry_groups/update.py b/google-cloud-sdk/lib/surface/dataplex/entry_groups/update.py new file mode 100644 index 0000000000..7f8aa3ee7f --- /dev/null +++ b/google-cloud-sdk/lib/surface/dataplex/entry_groups/update.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google Inc. All Rights Reserved. +# +# 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. +"""`gcloud dataplex entry-groups update` command.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.api_lib.dataplex import entry_group +from googlecloudsdk.api_lib.dataplex import util as dataplex_util +from googlecloudsdk.api_lib.util import exceptions as gcloud_exception +from googlecloudsdk.calliope import base +from googlecloudsdk.calliope import exceptions +from googlecloudsdk.command_lib.dataplex import resource_args +from googlecloudsdk.command_lib.util.args import labels_util +from googlecloudsdk.core import log + + +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +class Update(base.Command): + """Update a Dataplex Entry Group.""" + + detailed_help = { + 'EXAMPLES': + """\ + + To update Entry Group `test-entry-group` in project `test-project` at location `us-central1`, + with description `updated description` and display name `updated display name`, run: + + $ {command} test-entry-group --location=us-central1 --project=test-project --description='updated description' + --display-name='updated display name' + + """, + } + + @staticmethod + def Args(parser): + resource_args.AddDataplexEntryGroupResourceArg(parser, 'to update.') + parser.add_argument( + '--description', required=False, help='Description of the Entry Group.' + ) + parser.add_argument( + '--display-name', + required=False, + help='Display name of the Entry Group.', + ) + parser.add_argument( + '--etag', required=False, help='etag value for particular Entry Group.' + ) + async_group = parser.add_group(mutex=True, required=False) + async_group.add_argument( + '--validate-only', + action='store_true', + default=False, + help="Validate the update action, but don't actually perform it.", + ) + base.ASYNC_FLAG.AddToParser(async_group) + labels_util.AddCreateLabelsFlags(parser) + + @gcloud_exception.CatchHTTPErrorRaiseHTTPException( + 'Status code: {status_code}. {status_message}.' + ) + def Run(self, args): + update_mask = entry_group.GenerateEntryGroupUpdateMask(args) + if len(update_mask) < 1: + raise exceptions.HttpException( + 'Update commands must specify at least one additional parameter to ' + 'change.' + ) + + entry_group_ref = args.CONCEPTS.entry_group.Parse() + dataplex_client = dataplex_util.GetClientInstance() + update_req_op = dataplex_client.projects_locations_entryGroups.Patch( + dataplex_util.GetMessageModule( + ).DataplexProjectsLocationsEntryGroupsPatchRequest( + name=entry_group_ref.RelativeName(), + validateOnly=args.validate_only, + updateMask=u','.join(update_mask), + googleCloudDataplexV1EntryGroup=entry_group + .GenerateEntryGroupForUpdateRequest(args))) + + validate_only = getattr(args, 'validate_only', False) + if validate_only: + log.status.Print('Validation complete.') + return + + async_ = getattr(args, 'async_', False) + if not async_: + response = entry_group.WaitForOperation(update_req_op) + log.UpdatedResource(entry_group_ref, details='Operation was successful.') + return response + + log.status.Print( + 'Updating Entry Group [{0}] with operation [{1}].'.format( + entry_group_ref, update_req_op.name)) + return update_req_op diff --git a/google-cloud-sdk/lib/surface/edge_cloud/container/clusters/create.py b/google-cloud-sdk/lib/surface/edge_cloud/container/clusters/create.py index 178c0ee0a7..e080c4b324 100644 --- a/google-cloud-sdk/lib/surface/edge_cloud/container/clusters/create.py +++ b/google-cloud-sdk/lib/surface/edge_cloud/container/clusters/create.py @@ -148,3 +148,4 @@ def Args(parser, track=base.ReleaseTrack.ALPHA): container_flags.AddExternalLbIpv6AddressPools(parser) container_flags.AddExternalLoadBalancerAddressPools(parser) container_flags.AddOfflineRebootTtL(parser) + container_flags.AddControlPlaneNodeStorageSchema(parser) diff --git a/google-cloud-sdk/lib/surface/edge_cloud/container/clusters/node_pools/create.py b/google-cloud-sdk/lib/surface/edge_cloud/container/clusters/node_pools/create.py index 38452589e5..b410d4fe45 100644 --- a/google-cloud-sdk/lib/surface/edge_cloud/container/clusters/node_pools/create.py +++ b/google-cloud-sdk/lib/surface/edge_cloud/container/clusters/node_pools/create.py @@ -133,3 +133,4 @@ def Args(parser, track=base.ReleaseTrack.ALPHA): API=util.VERSION_MAP.get(track) ) Create.Args(parser) + container_flags.AddNodeStorageSchema(parser) diff --git a/google-cloud-sdk/lib/surface/emulators/firestore/start.py b/google-cloud-sdk/lib/surface/emulators/firestore/start.py index 34f10ed102..21a5c39dbf 100644 --- a/google-cloud-sdk/lib/surface/emulators/firestore/start.py +++ b/google-cloud-sdk/lib/surface/emulators/firestore/start.py @@ -28,6 +28,7 @@ @base.ReleaseTracks(base.ReleaseTrack.ALPHA, base.ReleaseTrack.BETA, base.ReleaseTrack.GA) +@base.DefaultUniverseOnly class Start(base.Command): """Start a local Firestore emulator. @@ -52,6 +53,14 @@ class Start(base.Command): To run the local Firestore emulator in Datastore Mode, run: $ {command} --database-mode=datastore-mode + + To import data at the start of the Firestore emulator, run: + + $ {command} --import-data= + + To export emulator data upon emulator shutdown, run: + + $ {command} --export-on-exit= """, } @@ -88,6 +97,16 @@ def Args(parser): action='store_true', hidden=True, help='Runs the emulator in Datastore Mode.') + parser.add_argument( + '--import-data', + required=False, + help='File path to the data to be loaded into the emulator upon start ' + 'up. Example:`/home/user/myexports/sampleExport/sampleExport.overall_export_metadata.`') + parser.add_argument( + '--export-on-exit', + required=False, + help='Directory path in which emulator data will be saved upon ' + 'shutdown. Example:`/home/user/myexports/2024-03-26/`') def Run(self, args): if not args.host_port: diff --git a/google-cloud-sdk/lib/surface/firestore/databases/list.py b/google-cloud-sdk/lib/surface/firestore/databases/list.py index 912772e882..c2034a20fc 100644 --- a/google-cloud-sdk/lib/surface/firestore/databases/list.py +++ b/google-cloud-sdk/lib/surface/firestore/databases/list.py @@ -23,10 +23,8 @@ from googlecloudsdk.core import properties -@base.ReleaseTracks( - base.ReleaseTrack.ALPHA, base.ReleaseTrack.BETA, base.ReleaseTrack.GA -) -class ListAlpha(base.ListCommand): +@base.ReleaseTracks(base.ReleaseTrack.BETA, base.ReleaseTrack.GA) +class ListBeta(base.ListCommand): """Lists all Firestore databases under the project. ## EXAMPLES @@ -36,6 +34,38 @@ class ListAlpha(base.ListCommand): $ {command} """ - def Run(self, args): + def ListDatabases(self, show_deleted): project = properties.VALUES.core.project.Get(required=True) - return databases.ListDatabases(project) + return databases.ListDatabases(project, show_deleted) + + def Run(self, args): + return self.ListDatabases(show_deleted=False) + + + +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +class ListAlpha(ListBeta): + """Lists all Firestore databases under the project. + + ## EXAMPLES + + To list all active Firestore databases. + + $ {command} + + To list all Firestore databases including deleted databases. + + $ {command} --show-deleted + """ + + @staticmethod + def Args(parser): + parser.add_argument( + '--show-deleted', + help='Show the deleted databases.', + action='store_true', + default=False, + ) + + def Run(self, args): + return self.ListDatabases(args.show_deleted) diff --git a/google-cloud-sdk/lib/surface/looker/instances/update.yaml b/google-cloud-sdk/lib/surface/looker/instances/update.yaml index fbfe03b2f7..6d83e87936 100644 --- a/google-cloud-sdk/lib/surface/looker/instances/update.yaml +++ b/google-cloud-sdk/lib/surface/looker/instances/update.yaml @@ -36,6 +36,12 @@ type: bool help_text: | This specifies whether public IP is enabled on the Looker instance. + - arg_name: linked-lsp-project-number + required: false + api_field: instance.linkedLspProjectNumber + type: long + help_text: | + The Looker Studio Pro project number to be linked. # Group for Maintanence Windows - group: required: false diff --git a/google-cloud-sdk/lib/surface/metastore/services/delete.py b/google-cloud-sdk/lib/surface/metastore/services/delete.py index 22638b70b4..8050494b93 100644 --- a/google-cloud-sdk/lib/surface/metastore/services/delete.py +++ b/google-cloud-sdk/lib/surface/metastore/services/delete.py @@ -18,6 +18,8 @@ from __future__ import division from __future__ import unicode_literals +import json + from apitools.base.py import exceptions as apitools_exceptions from googlecloudsdk.api_lib.metastore import services_util as services_api_util from googlecloudsdk.api_lib.metastore import util as api_util @@ -45,8 +47,10 @@ } -@base.ReleaseTracks(base.ReleaseTrack.ALPHA, base.ReleaseTrack.BETA, - base.ReleaseTrack.GA) +@base.DefaultUniverseOnly +@base.ReleaseTracks( + base.ReleaseTrack.ALPHA, base.ReleaseTrack.BETA, base.ReleaseTrack.GA +) class Delete(base.DeleteCommand): """Delete one or more Dataproc Metastore services. @@ -86,6 +90,7 @@ def Run(self, args): operation = services_api_util.Delete( env_ref.RelativeName(), release_track=self.ReleaseTrack()) except apitools_exceptions.HttpError as e: + failed = json.loads(e.content)['error']['message'] encountered_errors = True else: details = 'with operation [{0}]'.format(operation.name) diff --git a/google-cloud-sdk/lib/surface/netapp/volumes/update.py b/google-cloud-sdk/lib/surface/netapp/volumes/update.py index 42e538d5f3..d7db45e3b9 100644 --- a/google-cloud-sdk/lib/surface/netapp/volumes/update.py +++ b/google-cloud-sdk/lib/surface/netapp/volumes/update.py @@ -179,9 +179,9 @@ def Run(self, args): if args.IsSpecified('source_backup'): updated_fields.append('restoreParameters') if backup_config is not None: - if backup_config.get('backup-policies', []): + if backup_config.get('backup-policies') is not None: updated_fields.append('backupConfig.backupPolicies') - if backup_config.get('backup-vault', ''): + if backup_config.get('backup-vault') is not None: updated_fields.append('backupConfig.backupVault') if backup_config.get('enable-scheduled-backups') is not None: updated_fields.append('backupConfig.scheduledBackupEnabled') diff --git a/google-cloud-sdk/lib/surface/network_connectivity/hubs/create.yaml b/google-cloud-sdk/lib/surface/network_connectivity/hubs/create.yaml index d513033e65..de7d892446 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/hubs/create.yaml +++ b/google-cloud-sdk/lib/surface/network_connectivity/hubs/create.yaml @@ -19,17 +19,14 @@ - arg_name: policy-mode release_tracks: [GA] api_field: hub.policyMode - hidden: true help_text: Policy mode of the hub. - arg_name: preset-topology release_tracks: [GA] api_field: hub.presetTopology - hidden: true help_text: Topology of the hub. Only applicable when ``--policy-mode=PRESET''. - arg_name: export-psc release_tracks: [GA] api_field: hub.exportPsc - hidden: true help_text: |- This boolean controls whether Private Service Connect transitivity is enabled for the hub. - arg_name: exchange-pupi diff --git a/google-cloud-sdk/lib/surface/network_connectivity/hubs/groups/update.py b/google-cloud-sdk/lib/surface/network_connectivity/hubs/groups/update.py index eb9bc2e52c..3834126420 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/hubs/groups/update.py +++ b/google-cloud-sdk/lib/surface/network_connectivity/hubs/groups/update.py @@ -31,7 +31,7 @@ @base.ReleaseTracks(base.ReleaseTrack.GA) -@base.Hidden +@base.DefaultUniverseOnly class Update(base.Command): """Update a group. diff --git a/google-cloud-sdk/lib/surface/network_connectivity/hubs/update.yaml b/google-cloud-sdk/lib/surface/network_connectivity/hubs/update.yaml index 033bf670da..b4699fe4f0 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/hubs/update.yaml +++ b/google-cloud-sdk/lib/surface/network_connectivity/hubs/update.yaml @@ -32,7 +32,6 @@ - arg_name: export-psc release_tracks: [GA] api_field: hub.exportPsc - hidden: true help_text: Whether Private Service Connect transitivity is enabled for the hub. GA: labels: diff --git a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/__init__.py b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/__init__.py index ef61034546..a843cee779 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/__init__.py +++ b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/__init__.py @@ -21,6 +21,6 @@ from googlecloudsdk.calliope import base -@base.ReleaseTracks(base.ReleaseTrack.BETA) +@base.ReleaseTracks(base.ReleaseTrack.BETA, base.ReleaseTrack.GA) class RegionalEndpoints(base.Group): """Manage Network Connectivity RegionalEndpoints.""" diff --git a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/create.yaml b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/create.yaml index dd54f7b022..2524a6035a 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/create.yaml +++ b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/create.yaml @@ -54,8 +54,70 @@ async: collection: networkconnectivity.projects.locations.operations - request: &request + request: BETA: api_version: v1beta collection: networkconnectivity.projects.locations.regionalEndpoints method: create + +- release_tracks: [GA] + + help_text: + brief: Create a new regional endpoint. + description: Create a new regional endpoint with the given name. + examples: | + To create a regional endpoint with the name 'my-regional-endpoint' in us-central1 + targeting my-target-endpoint, run: + + $ {command} my-regional-endpoint + --region=us-centeral1 + [--network=my-network] + [--subnetwork=my-subnet] + --target-google-api=my-target-endpoint + [--enable-global-access] + + arguments: + resource: + spec: !REF googlecloudsdk.command_lib.network_connectivity.resources:regionalEndpoint + help_text: Name of the regional endpoint to be created. + params: + - arg_name: enable-global-access + action: store_true + default: false + api_field: regionalEndpoint.accessType + help_text: | + Whether the REGIONAL or GLOBAL access is enabled. + choices: + - arg_value: false + enum_value: REGIONAL + help_text: REGIONAL access is enabled for the regional endpoint. + - arg_value: true + enum_value: GLOBAL + help_text: GLOBAL access is enabled for the regional. + - arg_name: description + api_field: regionalEndpoint.description + help_text: Description of the regional endpoint. + - arg_name: network + api_field: regionalEndpoint.network + help_text: Consumer's VPC network that this regional endpoint belongs to. + - arg_name: subnetwork + api_field: regionalEndpoint.subnetwork + help_text: The name of the subnetwork from which the IP address will be allocated. + - arg_name: target-google-api + required: true + api_field: regionalEndpoint.targetGoogleApi + help_text: The service endpoint the regional endpoint will connect to. + - arg_name: address + api_field: regionalEndpoint.address + help_text: The IP address or address resource URI of the Regional Endpoint. When no address value is provided, an IP from the subnetwork is allocated. + labels: + api_field: regionalEndpoint.labels + + async: + collection: networkconnectivity.projects.locations.operations + + request: + GA: + api_version: v1 + collection: networkconnectivity.projects.locations.regionalEndpoints + method: create diff --git a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/delete.yaml b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/delete.yaml index 501025fdf3..a75bcf78f9 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/delete.yaml +++ b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/delete.yaml @@ -1,4 +1,4 @@ -- release_tracks: [BETA] +- release_tracks: [BETA, GA] help_text: brief: | @@ -22,4 +22,6 @@ request: &request BETA: api_version: v1beta - collection: networkconnectivity.projects.locations.regionalEndpoints + GA: + api_version: v1 + collection: networkconnectivity.projects.locations.regionalEndpoints diff --git a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/describe.yaml b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/describe.yaml index 944cf494cc..a13b422aaa 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/describe.yaml +++ b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/describe.yaml @@ -1,4 +1,4 @@ -- release_tracks: [BETA] +- release_tracks: [BETA, GA] help_text: brief: | @@ -20,4 +20,6 @@ request: &request BETA: api_version: v1beta + GA: + api_version: v1 collection: networkconnectivity.projects.locations.regionalEndpoints diff --git a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/list.yaml b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/list.yaml index f1bdc350ec..4a23edc2cb 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/list.yaml +++ b/google-cloud-sdk/lib/surface/network_connectivity/regional_endpoints/list.yaml @@ -1,4 +1,4 @@ -- release_tracks: [BETA] +- release_tracks: [BETA, GA] help_text: brief: | @@ -30,4 +30,6 @@ request: &request BETA: api_version: v1beta + GA: + api_version: v1 collection: networkconnectivity.projects.locations.regionalEndpoints diff --git a/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_private_services_access/__init__.py b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_private_services_access/__init__.py new file mode 100644 index 0000000000..51c182dd3f --- /dev/null +++ b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_private_services_access/__init__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +"""Command group for Private Services Access spokes.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.calliope import base + + +@base.ReleaseTracks(base.ReleaseTrack.GA) +@base.Hidden +class LinkedPrivateServicesAccessSpokes(base.Group): + """Manage PSA spokes.""" diff --git a/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_private_services_access/create.py b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_private_services_access/create.py new file mode 100644 index 0000000000..7d5e9883ad --- /dev/null +++ b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_private_services_access/create.py @@ -0,0 +1,118 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. + +"""Command for creating PSA spokes.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.api_lib.network_connectivity import networkconnectivity_api +from googlecloudsdk.api_lib.network_connectivity import networkconnectivity_util +from googlecloudsdk.api_lib.util import waiter +from googlecloudsdk.calliope import base +from googlecloudsdk.command_lib.network_connectivity import flags +from googlecloudsdk.command_lib.util.args import labels_util +from googlecloudsdk.core import log +from googlecloudsdk.core import resources + + +@base.ReleaseTracks(base.ReleaseTrack.GA) +@base.Hidden +class Create(base.Command): + """Create a new PSA spoke. + + Create a new PSA spoke. + """ + + @staticmethod + def Args(parser): + flags.AddSpokeResourceArg(parser, 'to create', global_spoke_command=True) + flags.AddRegionGroup(parser, hide_global_arg=False, hide_region_arg=True) + flags.AddHubFlag(parser) + flags.AddGroupFlag(parser) + flags.AddNetworkFlag(parser) + flags.AddDescriptionFlag(parser, 'Description of the spoke to create.') + flags.AddAsyncFlag(parser) + flags.AddExcludeExportRangesFlag( + parser, hide_exclude_export_ranges_flag=False + ) + flags.AddIncludeExportRangesFlag( + parser, hide_include_export_ranges_flag=True + ) + labels_util.AddCreateLabelsFlags(parser) + + def Run(self, args): + client = networkconnectivity_api.SpokesClient( + release_track=self.ReleaseTrack() + ) + + spoke_ref = args.CONCEPTS.spoke.Parse() + labels = labels_util.ParseCreateArgs( + args, client.messages.Spoke.LabelsValue + ) + spoke = client.messages.Spoke( + hub=args.hub, + group=args.group, + linkedPrivateServicesAccess=client.messages.LinkedPrivateServicesAccess( + network=args.network, + excludeExportRanges=args.exclude_export_ranges, + includeExportRanges=args.include_export_ranges, + ), + description=args.description, + labels=labels, + ) + + op_ref = client.CreateSpoke(spoke_ref, spoke) + + log.status.Print('Create request issued for: [{}]'.format(spoke_ref.Name())) + + if op_ref.done: + log.CreatedResource(spoke_ref.Name(), kind='spoke') + return op_ref + + if args.async_: + log.status.Print('Check operation [{}] for status.'.format(op_ref.name)) + return op_ref + + op_resource = resources.REGISTRY.ParseRelativeName( + op_ref.name, + collection='networkconnectivity.projects.locations.operations', + api_version=networkconnectivity_util.VERSION_MAP[self.ReleaseTrack()], + ) + poller = waiter.CloudOperationPoller( + client.spoke_service, client.operation_service + ) + res = waiter.WaitFor( + poller, + op_resource, + 'Waiting for operation [{}] to complete'.format(op_ref.name), + ) + log.CreatedResource(spoke_ref.Name(), kind='spoke') + return res + + +Create.detailed_help = { + 'EXAMPLES': """ \ + To create a PSA spoke named ``myspoke'', run: + + $ {command} myspoke --hub="https://www.googleapis.com/networkconnectivity/v1/projects/my-project/locations/global/hubs/my-hub" --global --network="https://www.googleapis.com/compute/v1/projects/my-project/global/networks/my-vpc" + """, + 'API REFERENCE': """ \ + This command uses the networkconnectivity/v1 API. The full documentation + for this API can be found at: + https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest + """, +} diff --git a/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_private_services_access/update.py b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_private_services_access/update.py new file mode 100644 index 0000000000..a11881f82f --- /dev/null +++ b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_private_services_access/update.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. + +"""Command for updating spokes.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.api_lib.network_connectivity import networkconnectivity_api +from googlecloudsdk.api_lib.network_connectivity import networkconnectivity_util +from googlecloudsdk.api_lib.util import waiter +from googlecloudsdk.calliope import base +from googlecloudsdk.command_lib.network_connectivity import flags +from googlecloudsdk.command_lib.util.args import labels_util +from googlecloudsdk.core import log +from googlecloudsdk.core import resources + + +@base.ReleaseTracks(base.ReleaseTrack.GA) +@base.Hidden +class Update(base.Command): + """Update a PSA spoke. + + Update the details of a PSA spoke. + """ + + @staticmethod + def Args(parser): + flags.AddSpokeResourceArg(parser, 'to update', global_spoke_command=True) + flags.AddRegionGroup(parser, hide_global_arg=False, hide_region_arg=True) + flags.AddDescriptionFlag(parser, 'New description of the spoke.') + flags.AddAsyncFlag(parser) + labels_util.AddUpdateLabelsFlags(parser) + + def Run(self, args): + client = networkconnectivity_api.SpokesClient( + release_track=self.ReleaseTrack()) + + spoke_ref = args.CONCEPTS.spoke.Parse() + update_mask = [] + description = args.description + if description is not None: + update_mask.append('description') + + labels = None + labels_diff = labels_util.Diff.FromUpdateArgs(args) + if labels_diff.MayHaveUpdates(): + original_spoke = client.Get(spoke_ref) + labels_update = labels_diff.Apply(client.messages.Spoke.LabelsValue, + original_spoke.labels) + if labels_update.needs_update: + labels = labels_update.labels + update_mask.append('labels') + + # Construct a spoke message with only the updated fields + spoke = client.messages.Spoke(description=description, labels=labels) + + op_ref = client.UpdateSpoke(spoke_ref, spoke, update_mask) + + log.status.Print('Update request issued for: [{}]'.format(spoke_ref.Name())) + + if op_ref.done: + log.UpdatedResource(spoke_ref.Name(), kind='spoke') + return op_ref + + if args.async_: + log.status.Print('Check operation [{}] for status.'.format(op_ref.name)) + return op_ref + + op_resource = resources.REGISTRY.ParseRelativeName( + op_ref.name, + collection='networkconnectivity.projects.locations.operations', + api_version=networkconnectivity_util.VERSION_MAP[self.ReleaseTrack()]) + poller = waiter.CloudOperationPoller(client.spoke_service, + client.operation_service) + res = waiter.WaitFor( + poller, op_resource, + 'Waiting for operation [{}] to complete'.format(op_ref.name)) + log.UpdatedResource(spoke_ref.Name(), kind='spoke') + return res + + +Update.detailed_help = { + 'EXAMPLES': + """ \ + To update the description of a PSA spoke named ``my-spoke'', run: + + $ {command} myspoke --global --description="new spoke description" + """, + 'API REFERENCE': + """ \ + This command uses the networkconnectivity/v1 API. The full documentation + for this API can be found at: + https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest + """, +} diff --git a/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_vpc_network/create.py b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_vpc_network/create.py index 31c60a1932..ada23c4ddf 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_vpc_network/create.py +++ b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_vpc_network/create.py @@ -74,7 +74,7 @@ def Run(self, args): labels=labels, ) - op_ref = client.CreateVPCSpoke(spoke_ref, spoke) + op_ref = client.CreateSpoke(spoke_ref, spoke) log.status.Print('Create request issued for: [{}]'.format(spoke_ref.Name())) diff --git a/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_vpc_network/update.py b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_vpc_network/update.py index abe996ad4a..58b2b89bc4 100644 --- a/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_vpc_network/update.py +++ b/google-cloud-sdk/lib/surface/network_connectivity/spokes/linked_vpc_network/update.py @@ -67,7 +67,7 @@ def Run(self, args): # Construct a spoke message with only the updated fields spoke = client.messages.Spoke(description=description, labels=labels) - op_ref = client.UpdateVPCSpoke(spoke_ref, spoke, update_mask) + op_ref = client.UpdateSpoke(spoke_ref, spoke, update_mask) log.status.Print('Update request issued for: [{}]'.format(spoke_ref.Name())) diff --git a/google-cloud-sdk/lib/surface/pam/__init__.py b/google-cloud-sdk/lib/surface/pam/__init__.py index 47512bd1bf..b058e0d83e 100644 --- a/google-cloud-sdk/lib/surface/pam/__init__.py +++ b/google-cloud-sdk/lib/surface/pam/__init__.py @@ -23,30 +23,31 @@ @base.ReleaseTracks(base.ReleaseTrack.ALPHA, base.ReleaseTrack.BETA) +@base.UniverseCompatible class Pam(base.Group): - r"""Manage Privileged Access Manager (PAM) Entitlements and Grants. + r"""Manage Privileged Access Manager (PAM) entitlements and grants. - The gcloud pam command group lets you manage Privileged Access Manager - (PAM) Entitlements and Grants. + The `gcloud pam` command group lets you manage Privileged Access Manager + (PAM) entitlements and grants. ## EXAMPLES - To check the PAM onboarding status for a project `sample-project` and - location `global`, run: + To check the PAM onboarding status for a project named `sample-project` and + in location `global`, run: $ {command} check-onboarding-status --project=sample-project --location=global - To check the PAM onboarding status for a folder `sample-folder` and + To check the PAM onboarding status for a folder with ID ``FOLDER_ID'' and in location `global`, run: - $ {command} check-onboarding-status --folder=sample-folder + $ {command} check-onboarding-status --folder=FOLDER_ID --location=global - To check the PAM onboarding status for an organization - `sample-organization` and location `global`, run: + To check the PAM onboarding status for an organization with ID + ``ORGANIZATION_ID'' and in location `global`, run: - $ {command} check-onboarding-status --organization=sample-organization + $ {command} check-onboarding-status --organization=ORGANIZATION_ID --location=global """ diff --git a/google-cloud-sdk/lib/surface/pam/check_onboarding_status.yaml b/google-cloud-sdk/lib/surface/pam/check_onboarding_status.yaml index 4b08027781..df1afb8776 100644 --- a/google-cloud-sdk/lib/surface/pam/check_onboarding_status.yaml +++ b/google-cloud-sdk/lib/surface/pam/check_onboarding_status.yaml @@ -4,20 +4,20 @@ brief: Check Privileged Access Manager (PAM) onboarding status for a resource. description: Check Privileged Access Manager (PAM) onboarding status for a project/organization/folder location. examples: | - The following command checks the PAM onboarding status for a project `sample-project` and - location `global`: + The following command checks the PAM onboarding status for a project named `sample-project` + and in location `global`: $ {command} --project=sample-project --location=global - The following command checks the PAM onboarding status for a folder `sample-folder` and - location `global`: + The following command checks the PAM onboarding status for a folder with ID ``FOLDER_ID'' and + in location `global`: - $ {command} --folder=sample-folder --location=global + $ {command} --folder=FOLDER_ID --location=global - The following command checks the PAM onboarding status for an organization - `sample-organization` and location `global`: + The following command checks the PAM onboarding status for an organization with ID + ``ORGANIZATION_ID'' and in location `global`: - $ {command} --organization=sample-organization --location=global + $ {command} --organization=ORGANIZATION_ID --location=global request: ALPHA: diff --git a/google-cloud-sdk/lib/surface/pam/entitlements/__init__.py b/google-cloud-sdk/lib/surface/pam/entitlements/__init__.py index 1ffc0fa307..a63ef894c6 100644 --- a/google-cloud-sdk/lib/surface/pam/entitlements/__init__.py +++ b/google-cloud-sdk/lib/surface/pam/entitlements/__init__.py @@ -23,106 +23,164 @@ @base.ReleaseTracks(base.ReleaseTrack.ALPHA, base.ReleaseTrack.BETA) +@base.UniverseCompatible class Entitlements(base.Group): - r"""Manage Privileged Access Manager (PAM) Entitlements. + r"""Manage Privileged Access Manager (PAM) entitlements. The `gcloud pam entitlements` command group lets you manage Privileged Access - Manager (PAM) Entitlements. + Manager (PAM) entitlements. ## EXAMPLES - To create a new entitlement with the name `sample-entitlement`, under a - project `sample-project`, location `global` and the entitlement body present - in the `sample-entitlement.yaml` file, run: + To create a new entitlement with a name of `sample-entitlement`, in a project + named `sample-project`, in location `global`, and the entitlement + configuration stored in a file named `sample-entitlement.yaml`, run: $ {command} create sample-entitlement --project=sample-project --location=global --entitlement-file=sample-entitlement.yaml - To create a new entitlement with the name `sample-entitlement`, under a - folder `sample-folder`, location `global` and the entitlement body present - in the `sample-entitlement.yaml` file, run: + To create a new entitlement with a name of `sample-entitlement`, in a folder + with ID ``FOLDER_ID'', in location `global`, and the entitlement + configuration stored in a file named `sample-entitlement.yaml`, run: - $ {command} create sample-entitlement --folder=sample-folder + $ {command} create sample-entitlement --folder=FOLDER_ID --location=global --entitlement-file=sample-entitlement.yaml - To create a new entitlement with the name `sample-entitlement`, under an - organization `sample-organization`, location `global` and the entitlement - body present in the `sample-entitlement.yaml` file, run: + To create a new entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', in location `global`, and the + entitlement configuration stored in a file named `sample-entitlement.yaml`, + run: + + $ {command} create sample-entitlement --organization=ORGANIZATION_ID + --location=global --entitlement-file=sample-entitlement.yaml + + To update an entitlement with a name of `sample-entitlement`, in a project + named `sample-project`, in location `global`, and the new entitlement + configuration stored in a file named `sample-entitlement.yaml`, run: + + $ {command} update sample-entitlement --project=sample-project + --location=global --entitlement-file=sample-entitlement.yaml + + To update an entitlement with a name of `sample-entitlement`, in a folder + with ID ``FOLDER_ID'', in location `global`, and the new entitlement + configuration stored in a file named `sample-entitlement.yaml`, run: + + $ {command} update sample-entitlement --folder=FOLDER_ID + --location=global --entitlement-file=sample-entitlement.yaml + + To update an entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', in location `global`, and the new + entitlement configuration stored in a file named `sample-entitlement.yaml`, + run: - $ {command} create sample-entitlement --organization=sample-organization + $ {command} update sample-entitlement --organization=ORGANIZATION_ID --location=global --entitlement-file=sample-entitlement.yaml - To update an entitlement with the full name ``ENTITLEMENT_NAME'' and the new - entitlement body present in the `sample-entitlement.yaml` file, run: + To describe an entitlement with a name of `sample-entitlement`, in a project + named `sample-project`, and in location `global`, run: - $ {command} update ENTITLEMENT_NAME - --entitlement-file=sample-entitlement.yaml + $ {command} describe sample-entitlement --project=sample-project + --location=global - To describe an entitlement with the full name ``ENTITLEMENT_NAME'', run: + To describe an entitlement with a name of `sample-entitlement`, in a folder + with ID ``FOLDER_ID'', and in location `global`, run: - $ {command} describe ENTITLEMENT_NAME + $ {command} describe sample-entitlement --folder=FOLDER_ID + --location=global - To search and list all entitlements under a project `sample-project` and - location `global` for which you are a requester, run: + To describe an entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', and in location `global`, run: + + $ {command} describe sample-entitlement --organization=ORGANIZATION_ID + --location=global + + To search for and list all entitlements for which you are a requester, in a + project named `sample-project`, and in location `global`, run: $ {command} search --project=sample-project --location=global --caller-access-type=grant-requester - To search and list all entitlements under a project `sample-project` and - location `global` for which you are an approver, run: + To search for and list all entitlements for which you are an approver, in a + project named `sample-project`, and in location `global`, run: $ {command} search --project=sample-project --location=global --caller-access-type=grant-approver - To search and list all entitlements under a folder `sample-folder` and - location `global` for which you are a requester, run: + To search for and list all entitlements for which you are a requester, in a + folder with ID ``FOLDER_ID'', and in location `global`, run: - $ {command} search --folder=sample-folder --location=global + $ {command} search --folder=FOLDER_ID --location=global --caller-access-type=grant-requester - To search and list all entitlements under a folder `sample-folder` and - location `global` for which you are an approver, run: + To search for and list all entitlements for which you are an approver, in a + folder with ID ``FOLDER_ID'', and in location `global`, run: - $ {command} search --folder=sample-folder --location=global + $ {command} search --folder=FOLDER_ID --location=global --caller-access-type=grant-approver - To search and list all entitlements under an organization - `sample-organization` and location `global` for which you are a requester, - run: + To search for and list all entitlements for which you are a requester, in an + organization with ID ``ORGANIZATION_ID'', and in location `global`, run: - $ {command} search --organization=sample-organization --location=global + $ {command} search --organization=ORGANIZATION_ID --location=global --caller-access-type=grant-requester - To search and list all entitlements under an organization - `sample-organization` and location `global` for which you are an approver, - run: + To search for and list all entitlements for which you are an approver, in an + organization with ID ``ORGANIZATION_ID'', and in location `global`, run: - $ {command} search --organization=sample-organization --location=global + $ {command} search --organization=ORGANIZATION_ID --location=global --caller-access-type=grant-approver - To list all entitlement under a project `sample-project` and location + To list all entitlements in a project named `sample-project` and in location `global`, run: $ {command} list --project=sample-project --location=global - To list all entitlement under a folder `sample-folder` and location + To list all entitlements in a folder with ID ``FOLDER_ID'' and in location `global`, run: - $ {command} list --folder=sample-folder --location=global + $ {command} list --folder=FOLDER_ID --location=global + + To list all entitlements in an organization with ID ``ORGANIZATION_ID'' and + in location `global`, run: + + $ {command} list --organization=ORGANIZATION_ID --location=global + + To delete an entitlement with a name of `sample-entitlement`, in a project + named `sample-project`, and in location `global`, run: + + $ {command} delete sample-entitlement --project=sample-project + --location=global + + To delete an entitlement with a name of `sample-entitlement`, in a folder + with ID ``FOLDER_ID'', and in location `global`, run: + + $ {command} delete sample-entitlement --folder=FOLDER_ID + --location=global + + To delete an entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', and in location `global`, run: - To list all entitlement under an organization `sample-organization` and - location `global`, run: + $ {command} delete sample-entitlement --organization=ORGANIZATION_ID + --location=global - $ {command} list --organization=sample-organization --location=global + To export an entitlement with a name of `sample-entitlement`, in a project + named `sample-project`, and in location `global` to a local YAML file named + `sample-entitlement.yaml`, run: - To delete an entitlement with the full name ``ENTITLEMENT_NAME'' along with - all grants under it, run: + $ {command} export sample-entitlement --project=sample-project + --location=global --destination=sample-entitlement.yaml - $ {command} delete ENTITLEMENT_NAME + To export an entitlement with a name of `sample-entitlement`, in a folder + with ID ``FOLDER_ID'', and in location `global` to a local YAML file named + `sample-entitlement.yaml`, run: - To export an entitlement with the full name ``ENTITLEMENT_NAME'' to a - local YAML file `entitlement-file.yaml`, run: + $ {command} export sample-entitlement --folder=FOLDER_ID + --location=global --destination=sample-entitlement.yaml - $ {command} export ENTITLEMENT_NAME --destination=entitlement-file.yaml + To export an entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', and in location `global` to a local + YAML file named `sample-entitlement.yaml`, run: + $ {command} export sample-entitlement --organization=ORGANIZATION_ID + --location=global --destination=sample-entitlement.yaml """ diff --git a/google-cloud-sdk/lib/surface/pam/entitlements/create.yaml b/google-cloud-sdk/lib/surface/pam/entitlements/create.yaml index 52b4b67b34..72f55e46fb 100644 --- a/google-cloud-sdk/lib/surface/pam/entitlements/create.yaml +++ b/google-cloud-sdk/lib/surface/pam/entitlements/create.yaml @@ -2,25 +2,25 @@ help_text: brief: Create a new Privileged Access Manager (PAM) entitlement. - description: Create a new Privileged Access Manager (PAM) entitlement under a project/folder/organization location. + description: Create a new Privileged Access Manager (PAM) entitlement in a project/folder/organization location. examples: | - The following command creates a new entitlement with the name `sample-entitlement`, under a - project `sample-project`, location `global` and the entitlement body present in the - `sample-entitlement.yaml` file: + The following command creates a new entitlement with a name of `sample-entitlement`, in a + project named `sample-project`, in location `global`, and the entitlement configuration stored + in a file named `sample-entitlement.yaml`: $ {command} sample-entitlement --project=sample-project --location=global --entitlement-file=sample-entitlement.yaml - The following command creates a new entitlement with the name `sample-entitlement`, under a - folder `sample-folder`, location `global` and the entitlement body present in the - `sample-entitlement.yaml` file: + The following command creates a new entitlement with a name of `sample-entitlement`, in a + folder with ID ``FOLDER_ID'', in location `global`, and the entitlement configuration stored + in a file named `sample-entitlement.yaml`: - $ {command} sample-entitlement --folder=sample-folder --location=global --entitlement-file=sample-entitlement.yaml + $ {command} sample-entitlement --folder=FOLDER_ID --location=global --entitlement-file=sample-entitlement.yaml - The following command creates a new entitlement with the name `sample-entitlement`, under an - organization `sample-organization`, location `global` and the entitlement body present in the - `sample-entitlement.yaml` file: + The following command creates a new entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', in location `global`, and the entitlement + configuration stored in a file named `sample-entitlement.yaml`: - $ {command} sample-entitlement --organization=sample-organization --location=global --entitlement-file=sample-entitlement.yaml + $ {command} sample-entitlement --organization=ORGANIZATION_ID --location=global --entitlement-file=sample-entitlement.yaml request: ALPHA: @@ -46,7 +46,7 @@ type: "googlecloudsdk.calliope.arg_parsers:FileContents:" processor: googlecloudsdk.core.yaml:load help_text: | - YAML file containing the body of the entitlement to be created. + YAML file containing the configuration of the entitlement. async: ALPHA: diff --git a/google-cloud-sdk/lib/surface/pam/entitlements/delete.yaml b/google-cloud-sdk/lib/surface/pam/entitlements/delete.yaml index 2629fe67a1..d049b08c05 100644 --- a/google-cloud-sdk/lib/surface/pam/entitlements/delete.yaml +++ b/google-cloud-sdk/lib/surface/pam/entitlements/delete.yaml @@ -3,15 +3,25 @@ help_text: brief: Delete a Privileged Access Manager (PAM) entitlement. description: | - Delete a Privileged Access Manager (PAM) entitlement along with all grants under it. + Delete a Privileged Access Manager (PAM) entitlement along with all grants associated with it. This command can fail for the following reasons: * There are non-terminal grants under the entitlement. examples: | - The following command deletes an entitlement with the full name ``ENTITLEMENT_NAME'' along - with all grants under it: + The following command deletes an entitlement with a name of `sample-entitlement`, in a + project named `sample-project`, and in location `global`: - $ {command} ENTITLEMENT_NAME + $ {command} sample-entitlement --project=sample-project --location=global + + The following command deletes an entitlement with a name of `sample-entitlement`, in a folder + with ID ``FOLDER_ID'', and in location `global`: + + $ {command} sample-entitlement --folder=FOLDER_ID --location=global + + The following command deletes an entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', and in location `global`: + + $ {command} sample-entitlement --organization=ORGANIZATION_ID --location=global request: ALPHA: @@ -43,4 +53,4 @@ input: confirmation_prompt: | - All grants associated with the entitlement will also be deleted upon deleting the entitlement. + All grants associated with the entitlement are also deleted upon deleting the entitlement. diff --git a/google-cloud-sdk/lib/surface/pam/entitlements/describe.yaml b/google-cloud-sdk/lib/surface/pam/entitlements/describe.yaml index 9b2612f76f..b9c0bb481d 100644 --- a/google-cloud-sdk/lib/surface/pam/entitlements/describe.yaml +++ b/google-cloud-sdk/lib/surface/pam/entitlements/describe.yaml @@ -4,9 +4,20 @@ brief: Show details of a Privileged Access Manager (PAM) entitlement. description: Show details of a Privileged Access Manager (PAM) entitlement. examples: | - The following command describes an entitlement with the full name ``ENTITLEMENT_NAME'': + The following command describes an entitlement with a name of `sample-entitlement`, in a + project named `sample-project`, and in location `global`: - $ {command} ENTITLEMENT_NAME + $ {command} sample-entitlement --project=sample-project --location=global + + The following command describes an entitlement with a name of `sample-entitlement`, in a folder + with ID ``FOLDER_ID'', and in location `global`: + + $ {command} sample-entitlement --folder=FOLDER_ID --location=global + + The following command describes an entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', and in location `global`: + + $ {command} sample-entitlement --organization=ORGANIZATION_ID --location=global request: ALPHA: diff --git a/google-cloud-sdk/lib/surface/pam/entitlements/export.yaml b/google-cloud-sdk/lib/surface/pam/entitlements/export.yaml index 088d8f02a1..6ba78f67d5 100644 --- a/google-cloud-sdk/lib/surface/pam/entitlements/export.yaml +++ b/google-cloud-sdk/lib/surface/pam/entitlements/export.yaml @@ -4,10 +4,23 @@ brief: Export a Privileged Access Manager (PAM) entitlement into a local YAML file. description: Export a Privileged Access Manager (PAM) entitlement into a local YAML file. examples: | - The following command exports an entitlement with the full name ``ENTITLEMENT_NAME'' to a - local YAML file `entitlement-file.yaml`: + The following command exports an entitlement with a name of `sample-entitlement`, in a + project named `sample-project`, and in location `global` to a local YAML file named + `sample-entitlement.yaml`: - $ {command} ENTITLEMENT_NAME --destination=entitlement-file.yaml + $ {command} sample-entitlement --project=sample-project --location=global --destination=sample-entitlement.yaml + + The following command exports an entitlement with a name of `sample-entitlement`, in a folder + with ID ``FOLDER_ID'', and in location `global` to a local YAML file named + `sample-entitlement.yaml`: + + $ {command} sample-entitlement --folder=FOLDER_ID --location=global --destination=sample-entitlement.yaml + + The following command exports an entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', and in location `global` to a local YAML file named + `sample-entitlement.yaml`: + + $ {command} sample-entitlement --organization=ORGANIZATION_ID --location=global --destination=sample-entitlement.yaml request: ALPHA: diff --git a/google-cloud-sdk/lib/surface/pam/entitlements/list.yaml b/google-cloud-sdk/lib/surface/pam/entitlements/list.yaml index 02410a49e7..0331eadaad 100644 --- a/google-cloud-sdk/lib/surface/pam/entitlements/list.yaml +++ b/google-cloud-sdk/lib/surface/pam/entitlements/list.yaml @@ -2,22 +2,22 @@ help_text: brief: List all Privileged Access Manager (PAM) entitlements under a parent. - description: List all Privileged Access Manager (PAM) entitlements under a project/folder/organization location. + description: List all Privileged Access Manager (PAM) entitlements in a project/folder/organization location. examples: | - The following command lists all entitlement under a project `sample-project` and location - `global`: + The following command lists all entitlements in a project named `sample-project` and in + location `global`: $ {command} --project=sample-project --location=global - The following command lists all entitlement under a folder `sample-folder` and location - `global`: + The following command lists all entitlements in a folder with ID ``FOLDER_ID'' and in + location `global`: - $ {command} --folder=sample-folder --location=global + $ {command} --folder=FOLDER_ID --location=global - The following command lists all entitlement under an organization `sample-organization` and - location `global`: + The following command lists all entitlements in an organization with ID ``ORGANIZATION_ID'' + and in location `global`: - $ {command} --organization=sample-organization --location=global + $ {command} --organization=ORGANIZATION_ID --location=global request: ALPHA: @@ -33,4 +33,4 @@ resource: spec: !REF googlecloudsdk.command_lib.pam.resources:location help_text: | - Location under which the entitlements are to be listed. + Location of the entitlements. diff --git a/google-cloud-sdk/lib/surface/pam/entitlements/search.yaml b/google-cloud-sdk/lib/surface/pam/entitlements/search.yaml index f4aed09126..70ad7ad41c 100644 --- a/google-cloud-sdk/lib/surface/pam/entitlements/search.yaml +++ b/google-cloud-sdk/lib/surface/pam/entitlements/search.yaml @@ -3,38 +3,38 @@ command_type: LIST help_text: - brief: Search and list all Privileged Access Manager (PAM) entitlements under a parent for which you are either a requester or an approver. - description: Search and list all Privileged Access Manager (PAM) entitlements under a project/folder/organization location for which you are either a requester or an approver. + brief: Search and list all Privileged Access Manager (PAM) entitlements in a parent for which you are either a requester or an approver. + description: Search and list all Privileged Access Manager (PAM) entitlements in a project/folder/organization location for which you are either a requester or an approver. examples: | - The following command searches and lists all entitlements under a project `sample-project` and - location `global` for which you are a requester: + The following command searches for and lists all entitlements for which you are a requester, + in a project named `sample-project`, and in location `global`: $ {command} --project=sample-project --location=global --caller-access-type=grant-requester - The following command searches and lists all entitlements under a project `sample-project` and - location `global` for which you are an approver: + The following command searches for and lists all entitlements for which you are an approver, + in a project named `sample-project`, and in location `global`: $ {command} --project=sample-project --location=global --caller-access-type=grant-approver - The following command searches and lists all entitlements under a folder `sample-folder` and - location `global` for which you are a requester: + The following command searches for and lists all entitlements for which you are a requester, + in a folder with ID ``FOLDER_ID'', and in location `global`: - $ {command} --folder=sample-folder --location=global --caller-access-type=grant-requester + $ {command} --folder=FOLDER_ID --location=global --caller-access-type=grant-requester - The following command searches and lists all entitlements under a folder `sample-folder` and - location `global` for which you are an approver: + The following command searches for and lists all entitlements for which you are an approver, + in a folder with ID ``FOLDER_ID'', and in location `global`: - $ {command} --folder=sample-folder --location=global --caller-access-type=grant-approver + $ {command} --folder=FOLDER_ID --location=global --caller-access-type=grant-approver - The following command searches and lists all entitlements under an organization - `sample-organization` and location `global` for which you are a requester: + The following command searches for and lists all entitlements for which you are a requester, + in an organization with ID ``ORGANIZATION_ID'', and in location `global`: - $ {command} --organization=sample-organization --location=global --caller-access-type=grant-requester + $ {command} --organization=ORGANIZATION_ID --location=global --caller-access-type=grant-requester - The following command searches and lists all entitlements under an organization - `sample-organization` and location `global` for which you are an approver: + The following command searches for and lists all entitlements for which you are an approver, + in an organization with ID ``ORGANIZATION_ID'', and in location `global`: - $ {command} --organization=sample-organization --location=global --caller-access-type=grant-approver + $ {command} --organization=ORGANIZATION_ID --location=global --caller-access-type=grant-approver request: ALPHA: @@ -56,7 +56,7 @@ is_positional: false required: true help_text: | - Location under which the entitlements are to be listed. + Location of the entitlements. - api_field: callerAccessType arg_name: caller-access-type required: true @@ -66,4 +66,4 @@ - arg_value: grant-approver enum_value: GRANT_APPROVER help_text: | - Whether to search the entitlements for which you are a requester or approver. + Search for entitlements based on whether you are a requester or approver. diff --git a/google-cloud-sdk/lib/surface/pam/entitlements/update.yaml b/google-cloud-sdk/lib/surface/pam/entitlements/update.yaml index 10a72d6cdb..b37b9b45da 100644 --- a/google-cloud-sdk/lib/surface/pam/entitlements/update.yaml +++ b/google-cloud-sdk/lib/surface/pam/entitlements/update.yaml @@ -4,10 +4,23 @@ brief: Update an existing Privileged Access Manager (PAM) entitlement. description: Update an existing Privileged Access Manager (PAM) entitlement. examples: | - The following command updates an entitlement with the full name ``ENTITLEMENT_NAME'' and the - new entitlement body present in the `sample-entitlement.yaml` file: + The following command updates an entitlement with a name of `sample-entitlement`, in a + project named `sample-project`, in location `global`, and the new entitlement configuration + stored in a file named `sample-entitlement.yaml`: - $ {command} ENTITLEMENT_NAME --entitlement-file=sample-entitlement.yaml + $ {command} sample-entitlement --project=sample-project --location=global --entitlement-file=sample-entitlement.yaml + + The following command updates an entitlement with a name of `sample-entitlement`, in a folder + with ID ``FOLDER_ID'', in location `global`, and the new entitlement configuration stored in + a file named `sample-entitlement.yaml`: + + $ {command} sample-entitlement --folder=FOLDER_ID --location=global --entitlement-file=sample-entitlement.yaml + + The following command updates an entitlement with a name of `sample-entitlement`, in an + organization with ID ``ORGANIZATION_ID'', in location `global`, and the new entitlement + configuration stored in a file named `sample-entitlement.yaml`: + + $ {command} sample-entitlement --organization=ORGANIZATION_ID --location=global --entitlement-file=sample-entitlement.yaml request: ALPHA: @@ -33,7 +46,7 @@ type: "googlecloudsdk.calliope.arg_parsers:FileContents:" processor: googlecloudsdk.core.yaml:load help_text: | - YAML file containing the new body of the entitlement. + YAML file containing the new configuration of the entitlement. async: ALPHA: @@ -50,4 +63,4 @@ input: confirmation_prompt: | - Only new grants created under the entitlement will be affected by the changes. + Only new grants created against the entitlement are affected by the changes. diff --git a/google-cloud-sdk/lib/surface/pam/grants/__init__.py b/google-cloud-sdk/lib/surface/pam/grants/__init__.py index 8391073b27..18b2c630b2 100644 --- a/google-cloud-sdk/lib/surface/pam/grants/__init__.py +++ b/google-cloud-sdk/lib/surface/pam/grants/__init__.py @@ -23,17 +23,18 @@ @base.ReleaseTracks(base.ReleaseTrack.ALPHA, base.ReleaseTrack.BETA) +@base.UniverseCompatible class Grants(base.Group): - r"""Manage Privileged Access Manager (PAM) Grants. + r"""Manage Privileged Access Manager (PAM) grants. - The `gcloud pam grants` command group lets you manage Privileged - Access Manager (PAM) Grants. + The `gcloud pam grants` command group lets you manage Privileged Access + Manager (PAM) grants. ## EXAMPLES - To create a new grant under an entitlement with the full name - ``ENTITLEMENT_NAME'', with requested duration `1 hour 30 minutes`, a - justification `some justification` and two additional email recipients + To create a new grant against an entitlement with the full name + ``ENTITLEMENT_NAME'', a requested duration of `1 hour 30 minutes`, a + justification of `some justification`, and two additional email recipients `abc@example.com` and `xyz@example.com`, run: $ {command} create --entitlement=ENTITLEMENT_NAME @@ -45,7 +46,7 @@ class Grants(base.Group): $ {command} describe GRANT_NAME - To list all grants under an entitlement with the full name + To list all grants associated with an entitlement with the full name ``ENTITLEMENT_NAME'', run: $ {command} list --entitlement=ENTITLEMENT_NAME @@ -65,20 +66,20 @@ class Grants(base.Group): $ {command} revoke GRANT_NAME --reason="revoke reason" - To search and list all grants under an entitlement with the full name - ``ENTITLEMENT_NAME'', which you had created, run: + To search for and list all grants that you have created that are associated + with an entitlement with the full name ``ENTITLEMENT_NAME'', run: $ {command} search --entitlement=ENTITLEMENT_NAME --caller-relationship=had-created - To search and list all grants under an entitlement with the full name - ``ENTITLEMENT_NAME'', which you had approved or denied, run: + To search for and list all grants that you have approved or denied, that are + associated with an entitlement with the full name ``ENTITLEMENT_NAME'', run: $ {command} search --entitlement=ENTITLEMENT_NAME --caller-relationship=had-approved - To search and list all grants under an entitlement with the full name - ``ENTITLEMENT_NAME'', which you can approve, run: + To search for and list all grants that you can approve that are associated + with an entitlement with the full name ``ENTITLEMENT_NAME'', run: $ {command} search --entitlement=ENTITLEMENT_NAME --caller-relationship=can-approve diff --git a/google-cloud-sdk/lib/surface/pam/grants/approve.yaml b/google-cloud-sdk/lib/surface/pam/grants/approve.yaml index 0ad23a11f1..24a3e1b464 100644 --- a/google-cloud-sdk/lib/surface/pam/grants/approve.yaml +++ b/google-cloud-sdk/lib/surface/pam/grants/approve.yaml @@ -5,7 +5,7 @@ description: Approve a Privileged Access Manager (PAM) grant with a reason. examples: | The following command approves a grant with the full name ``GRANT_NAME'' and a reason - `approval reason`: + of `approval reason`: $ {command} GRANT_NAME --reason="approval reason" diff --git a/google-cloud-sdk/lib/surface/pam/grants/create.yaml b/google-cloud-sdk/lib/surface/pam/grants/create.yaml index 71ea544c09..9acb10f7e9 100644 --- a/google-cloud-sdk/lib/surface/pam/grants/create.yaml +++ b/google-cloud-sdk/lib/surface/pam/grants/create.yaml @@ -4,8 +4,8 @@ brief: Create a new Privileged Access Manager (PAM) grant. description: Create a new Privileged Access Manager (PAM) grant under an entitlement. examples: | - The following command creates a new grant under an entitlement with the full name - ``ENTITLEMENT_NAME'', with requested duration `1 hour 30 minutes`, a justification + The following command creates a new grant against the entitlement with the full name + ``ENTITLEMENT_NAME'', a requested duration of 1 hour 30 minutes, a justification of `some justification` and two additional email recipients `abc@example.com` and `xyz@example.com`: @@ -30,7 +30,7 @@ is_positional: false required: true help_text: | - Entitlement under which the grant is to be created + Entitlement the grant is to be created against. - arg_name: requested-duration api_field: grant.requestedDuration required: true @@ -44,7 +44,7 @@ api_field: grant.additionalEmailRecipients repeated: true help_text: | - Additional email addresses who will be notified for all the actions performed on the grant. + Additional email addresses that are notified for all actions performed on the grant. output: format: yaml diff --git a/google-cloud-sdk/lib/surface/pam/grants/deny.yaml b/google-cloud-sdk/lib/surface/pam/grants/deny.yaml index eac2d25d61..30edcaa1b5 100644 --- a/google-cloud-sdk/lib/surface/pam/grants/deny.yaml +++ b/google-cloud-sdk/lib/surface/pam/grants/deny.yaml @@ -5,7 +5,7 @@ description: Deny a Privileged Access Manager (PAM) grant with a reason. examples: | The following command denies a grant with the full name ``GRANT_NAME'' and a reason - `denial reason`: + of `denial reason`: $ {command} GRANT_NAME --reason="denial reason" diff --git a/google-cloud-sdk/lib/surface/pam/grants/list.yaml b/google-cloud-sdk/lib/surface/pam/grants/list.yaml index 09bfb0425b..aa2f6c2361 100644 --- a/google-cloud-sdk/lib/surface/pam/grants/list.yaml +++ b/google-cloud-sdk/lib/surface/pam/grants/list.yaml @@ -1,10 +1,10 @@ - release_tracks: [ALPHA, BETA] help_text: - brief: List all Privileged Access Manager (PAM) grants under an entitlement. - description: List all Privileged Access Manager (PAM) grants under an entitlement. + brief: List all Privileged Access Manager (PAM) grants associated with an entitlement. + description: List all Privileged Access Manager (PAM) grants associated with an entitlement. examples: | - The following command lists all grants under an entitlement with the full name + The following command lists all grants associated with an entitlement with the full name ``ENTITLEMENT_NAME'': $ {command} --entitlement=ENTITLEMENT_NAME @@ -23,4 +23,4 @@ resource: spec: !REF googlecloudsdk.command_lib.pam.resources:entitlement help_text: | - Entitlement under which the grants are to be listed. + Entitlement the grants are associated with. diff --git a/google-cloud-sdk/lib/surface/pam/grants/revoke.yaml b/google-cloud-sdk/lib/surface/pam/grants/revoke.yaml index ab20a3e093..81e523fe0f 100644 --- a/google-cloud-sdk/lib/surface/pam/grants/revoke.yaml +++ b/google-cloud-sdk/lib/surface/pam/grants/revoke.yaml @@ -4,7 +4,7 @@ brief: Revoke a Privileged Access Manager (PAM) grant. description: Revoke a Privileged Access Manager (PAM) grant with a reason. examples: | - The following command revokes a grant with the full name ``GRANT_NAME'' and a reason + The following command revokes a grant with the full name ``GRANT_NAME'' and a reason of `revoke reason`: $ {command} GRANT_NAME --reason="revoke reason" diff --git a/google-cloud-sdk/lib/surface/pam/grants/search.yaml b/google-cloud-sdk/lib/surface/pam/grants/search.yaml index 292ffec8e4..5c70abc84e 100644 --- a/google-cloud-sdk/lib/surface/pam/grants/search.yaml +++ b/google-cloud-sdk/lib/surface/pam/grants/search.yaml @@ -3,21 +3,21 @@ command_type: LIST help_text: - brief: Search and list all Privileged Access Manager (PAM) grants under an entitlement which you had created, had approved or can approve. - description: Search and list all Privileged Access Manager (PAM) grants under an entitlement which you had created, had approved or can approve. + brief: Search for and list all Privileged Access Manager (PAM) grants you have created, have approved, or can approve. + description: Search for and list all Privileged Access Manager (PAM) grants you have created, have approved, or can approve. examples: | - The following command searches and lists all grants under an entitlement with the full name - ``ENTITLEMENT_NAME'', which you had created: + The following command searches for and lists all grants you have created which are associated + with an entitlement with the full name ``ENTITLEMENT_NAME'': $ {command} --entitlement=ENTITLEMENT_NAME --caller-relationship=had-created - The following command searches and lists all grants under an entitlement with the full name - ``ENTITLEMENT_NAME'', which you had approved or denied: + The following command searches for and lists all grants you have approved or denied which are + associated with an entitlement with the full name ``ENTITLEMENT_NAME'': $ {command} --entitlement=ENTITLEMENT_NAME --caller-relationship=had-approved - The following command searches and lists all grants under an entitlement with the full name - ``ENTITLEMENT_NAME'', which you can approve: + The following command searches for and lists all grants you can approve which are associated + with an entitlement with the full name ``ENTITLEMENT_NAME'': $ {command} --entitlement=ENTITLEMENT_NAME --caller-relationship=can-approve @@ -41,7 +41,7 @@ is_positional: false required: true help_text: | - Entitlement under which the grants are to be listed. + Entitlement the grants are associated with. - api_field: callerRelationship arg_name: caller-relationship required: true @@ -53,4 +53,4 @@ - arg_value: can-approve enum_value: CAN_APPROVE help_text: | - Whether to search the grants which you had created, had approved or can approve. + Whether to return grants you have created, have approved, or can approve. diff --git a/google-cloud-sdk/lib/surface/pam/operations/__init__.py b/google-cloud-sdk/lib/surface/pam/operations/__init__.py index 12cb85bbbd..dd9ae3e4d8 100644 --- a/google-cloud-sdk/lib/surface/pam/operations/__init__.py +++ b/google-cloud-sdk/lib/surface/pam/operations/__init__.py @@ -23,11 +23,12 @@ @base.ReleaseTracks(base.ReleaseTrack.ALPHA, base.ReleaseTrack.BETA) +@base.UniverseCompatible class Operations(base.Group): r"""Manage Privileged Access Manager (PAM) Long Running Operations. The `gcloud pam operations` command group lets you manage Privileged - Access Manager (PAM) Operations. + Access Manager (PAM) operations. ## EXAMPLES @@ -35,20 +36,20 @@ class Operations(base.Group): $ {command} describe OPERATION_NAME - To list all operations under a project `sample-project` and location + To list all operations in a project named `sample-project` and in location `global`, run: $ {command} list --project=sample-project --location=global - To list all operations under a folder `sample-folder` and location + To list all operations in a folder with ID ``FOLDER_ID'' and in location `global`, run: - $ {command} list --folder=sample-folder --location=global + $ {command} list --folder=FOLDER_ID --location=global - To list all operations under an organization `sample-organization` and + To list all operations in an organization with ID ``ORGANIZATION_ID'' and in location `global`, run: - $ {command} list --organization=sample-organization --location=global + $ {command} list --organization=ORGANIZATION_ID --location=global To delete an operation with the full name ``OPERATION_NAME'', run: diff --git a/google-cloud-sdk/lib/surface/pam/operations/list.yaml b/google-cloud-sdk/lib/surface/pam/operations/list.yaml index d52c99f78f..af0559ddd6 100644 --- a/google-cloud-sdk/lib/surface/pam/operations/list.yaml +++ b/google-cloud-sdk/lib/surface/pam/operations/list.yaml @@ -4,20 +4,20 @@ brief: List all Privileged Access Manager (PAM) long running operations under a location. description: List all Privileged Access Manager (PAM) long running operations under a project/folder/organization location. examples: | - The following command lists all operations under a project `sample-project` and location - `global`: + The following command lists all operations in a project named `sample-project` and in + location `global`: $ {command} --project=sample-project --location=global - The following command list all operations under a folder `sample-folder` and location + The following command lists all operations in a folder with ID ``FOLDER_ID'' and in location `global`: - $ {command} --folder=sample-folder --location=global + $ {command} --folder=FOLDER_ID --location=global - The following command list all operations under an organization `sample-organization` and - location `global`: + The following command lists all operations in an organization with ID ``ORGANIZATION_ID'' and + in location `global`: - $ {command} --organization=sample-organization --location=global + $ {command} --organization=ORGANIZATION_ID --location=global request: ALPHA: @@ -33,4 +33,4 @@ resource: spec: !REF googlecloudsdk.command_lib.pam.resources:location help_text: | - Location under which the operations are to be listed. + Location of the operations. diff --git a/google-cloud-sdk/lib/surface/run/deploy.py b/google-cloud-sdk/lib/surface/run/deploy.py index f2b1dce02a..7c0c2b0801 100644 --- a/google-cloud-sdk/lib/surface/run/deploy.py +++ b/google-cloud-sdk/lib/surface/run/deploy.py @@ -15,12 +15,9 @@ """Deploy a container to Cloud Run.""" import enum -import json import os.path - from googlecloudsdk.api_lib.run import api_enabler from googlecloudsdk.api_lib.run import k8s_object -from googlecloudsdk.api_lib.run import revision from googlecloudsdk.api_lib.run import traffic from googlecloudsdk.calliope import base from googlecloudsdk.calliope import exceptions as c_exceptions @@ -262,42 +259,6 @@ def _ValidateAndGetBuildFromSource(self, containers): ) return build_from_source - def _GetBaseImage( - self, container, service, args, build_from_source_container_name - ): - """Returns the base image for the container. - - Args: - container: command line arguments for container that is build from source - service: existing Cloud run service which could be None. - args: argparse.Namespace, Command line arguments - build_from_source_container_name: name of container that is build from - source - - Returns: - base_image: string. Base image of the container. - """ - - base_image = getattr(container, 'base_image', None) - # If service exists, check existing base_image annotation and populate - # the value if --clear-base-image is not set - if ( - base_image is None - and service is not None - and revision.BASE_IMAGES_ANNOTATION in service.template.annotations - ): - existing_base_images_map = json.loads( - service.template.annotations[revision.BASE_IMAGES_ANNOTATION] - ) - if ( - build_from_source_container_name in existing_base_images_map - and not self._ShouldClearBaseImageForBuildFromSourceContainer( - args, build_from_source_container_name - ) - ): - base_image = existing_base_images_map[build_from_source_container_name] - return base_image - def _BuildFromSource( self, args, @@ -306,10 +267,9 @@ def _BuildFromSource( conn_context, platform, already_activated_services, - service, ): # Only one container can deployed from source - name, container = next(iter(build_from_source.items())) + container = next(iter(build_from_source.values())) pack = None changes = [] repo_to_create = None @@ -343,18 +303,14 @@ def _BuildFromSource( ) # Use GCP Buildpacks if Dockerfile doesn't exist docker_file = source + '/Dockerfile' - base_image = self._GetBaseImage(container, service, args, name) - if os.path.exists(docker_file): build_type = BuildType.DOCKERFILE # TODO(b/310727875): check --function is not provided else: - pack, changes = _CreateBuildPack( - container, base_image, self.ReleaseTrack() - ) + pack, changes = _CreateBuildPack(container, self.ReleaseTrack()) build_type = BuildType.BUILDPACKS image = None if pack else container.image - + base_image = getattr(container, 'base_image', None) if flags.FlagIsExplicitlySet(args, 'delegate_builds') or base_image: image = pack[0].get('image') if pack else image operation_message = ( @@ -375,7 +331,6 @@ def _BuildFromSource( repo_to_create, base_image, changes, - name, ) def _GetBaseChanges(self, args): @@ -435,27 +390,6 @@ def _GetTracker( suppress_output=args.async_, ) - def _ShouldClearBaseImageForBuildFromSourceContainer( - self, args, build_from_source_container_name - ): - """Checks if --clear-base-image is set and if the container is build from source. - - Args: - args: argparse.Namespace, Command line arguments - build_from_source_container_name: string. The name of the ingress - containers that is build from source. - - Returns: - shouldClearBaseImage: bool. - """ - if flags.FlagIsExplicitlySet(args, 'clear_base_image'): - return True - if flags.FlagIsExplicitlySet(args, 'containers'): - for name, args in args.containers.items(): - if name == build_from_source_container_name and args.clear_base_image: - return True - return False - def _GetRequiredApis(self, args): return [api_enabler.get_run_api()] @@ -492,35 +426,32 @@ def Run(self, args): is_function = False base_image = None build_changes = [] - build_from_source_container_name = '' + # Build an image from source if source specified + if build_from_source: + ( + is_function, + image, + pack, + source, + operation_message, + repo_to_create, + base_image, + build_changes, + ) = self._BuildFromSource( + args, + build_from_source, + service_ref, + conn_context, + platform, + already_activated_services, + ) + # Deploy a container with an image + changes = self._GetBaseChanges(args) + changes.extend(build_changes) with serverless_operations.Connect( conn_context, already_activated_services ) as operations: service = operations.GetService(service_ref) - # Build an image from source if source specified - if build_from_source: - ( - is_function, - image, - pack, - source, - operation_message, - repo_to_create, - base_image, - build_changes, - build_from_source_container_name, - ) = self._BuildFromSource( - args, - build_from_source, - service_ref, - conn_context, - platform, - already_activated_services, - service, - ) - # Deploy a container with an image - changes = self._GetBaseChanges(args) - changes.extend(build_changes) allow_unauth = self.GetAllowUnauth(args, operations, service_ref, service) resource_change_validators.ValidateClearVpcConnector(service, args) if service: # Service has been deployed before @@ -570,7 +501,6 @@ def Run(self, args): ), delegate_builds=flags.FlagIsExplicitlySet(args, 'delegate_builds'), base_image=base_image, - build_from_source_container_name=build_from_source_container_name, ) if args.async_: @@ -580,14 +510,14 @@ def Run(self, args): ) else: pretty_print.Success( - messages_util.GetSuccessMessageForSynchronousDeploy(service) + messages_util.GetSuccessMessageForSynchronousDeploy( + service, args.no_traffic + ) ) return service -def _CreateBuildPack( - container, base_image_arg, release_track=base.ReleaseTrack.GA -): +def _CreateBuildPack(container, release_track=base.ReleaseTrack.GA): """A helper method to cofigure buildpack.""" pack = [{'image': container.image}] changes = [] @@ -611,6 +541,7 @@ def _CreateBuildPack( 'GOOGLE_FUNCTION_TARGET={target}'.format(target=function_arg), ] }) + base_image_arg = getattr(container, 'base_image', None) if base_image_arg: pack[0].update({ 'builder': '{builder}'.format( diff --git a/google-cloud-sdk/lib/surface/run/services/update.py b/google-cloud-sdk/lib/surface/run/services/update.py index 0f4e8cd499..2fab7f159c 100644 --- a/google-cloud-sdk/lib/surface/run/services/update.py +++ b/google-cloud-sdk/lib/surface/run/services/update.py @@ -243,7 +243,9 @@ def Run(self, args): else: if creates_revision: pretty_print.Success( - messages_util.GetSuccessMessageForSynchronousDeploy(service) + messages_util.GetSuccessMessageForSynchronousDeploy( + service, args.no_traffic + ) ) else: pretty_print.Success( diff --git a/google-cloud-sdk/lib/surface/run/workers/deploy.py b/google-cloud-sdk/lib/surface/run/workers/deploy.py index 70f4682221..16031e782b 100644 --- a/google-cloud-sdk/lib/surface/run/workers/deploy.py +++ b/google-cloud-sdk/lib/surface/run/workers/deploy.py @@ -94,26 +94,24 @@ class Deploy(base.Command): @classmethod def Args(cls, parser): - # Flags specific to managed CR - managed_group = flags.GetManagedArgGroup(parser) - flags.AddBinAuthzPolicyFlags(managed_group) - flags.AddBinAuthzBreakglassFlag(managed_group) - flags.AddCloudSQLFlags(managed_group) - flags.AddCmekKeyFlag(managed_group) - flags.AddCmekKeyRevocationActionTypeFlag(managed_group) - flags.AddDescriptionFlag(managed_group) - flags.AddEncryptionKeyShutdownHoursFlag(managed_group) - flags.AddRevisionSuffixArg(managed_group) - flags.RemoveContainersFlag().AddToParser(managed_group) - flags.AddRuntimeFlag(managed_group) - flags.AddMinInstancesFlag(managed_group, resource_kind='worker') - flags.AddMaxInstancesFlag(managed_group, resource_kind='worker') - flags.AddMaxSurgeFlag(managed_group, resource_kind='worker') - flags.AddVolumesFlags(managed_group, cls.ReleaseTrack()) - flags.AddGpuTypeFlag(managed_group) + flags.AddBinAuthzPolicyFlags(parser) + flags.AddBinAuthzBreakglassFlag(parser) + flags.AddCloudSQLFlags(parser) + flags.AddCmekKeyFlag(parser) + flags.AddCmekKeyRevocationActionTypeFlag(parser) + flags.AddDescriptionFlag(parser) + flags.AddEncryptionKeyShutdownHoursFlag(parser) + flags.AddRevisionSuffixArg(parser) + flags.RemoveContainersFlag().AddToParser(parser) + flags.AddRuntimeFlag(parser) + flags.AddMinInstancesFlag(parser, resource_kind='worker') + flags.AddMaxInstancesFlag(parser, resource_kind='worker') + flags.AddMaxSurgeFlag(parser, resource_kind='worker') + flags.AddVolumesFlags(parser, cls.ReleaseTrack()) + flags.AddGpuTypeFlag(parser) flags.AddVpcNetworkGroupFlagsForUpdate(parser, resource_kind='worker') - flags.AddEgressSettingsFlag(managed_group) - flags.SERVICE_MESH_FLAG.AddToParser(managed_group) + flags.AddEgressSettingsFlag(parser) + flags.SERVICE_MESH_FLAG.AddToParser(parser) worker_presentation = presentation_specs.ResourcePresentationSpec( 'WORKER', resource_args.GetWorkerResourceSpec(prompt=True), @@ -354,7 +352,9 @@ def Run(self, args): ) else: pretty_print.Success( - messages_util.GetSuccessMessageForWorkerDeploy(worker) + messages_util.GetSuccessMessageForWorkerDeploy( + worker, args.no_promote + ) ) return worker diff --git a/google-cloud-sdk/lib/surface/run/workers/update.py b/google-cloud-sdk/lib/surface/run/workers/update.py index a694118979..d26582bcfc 100644 --- a/google-cloud-sdk/lib/surface/run/workers/update.py +++ b/google-cloud-sdk/lib/surface/run/workers/update.py @@ -76,30 +76,26 @@ class Update(base.Command): @classmethod def Args(cls, parser): - # Flags specific to managed CR - managed_group = flags.GetManagedArgGroup(parser) - flags.AddBinAuthzPolicyFlags(managed_group) - flags.AddBinAuthzBreakglassFlag(managed_group) - flags.AddCloudSQLFlags(managed_group) - flags.AddCmekKeyFlag(managed_group) - flags.AddCmekKeyRevocationActionTypeFlag(managed_group) - flags.AddCustomAudiencesFlag(managed_group) - flags.AddEgressSettingsFlag(managed_group) - flags.AddEncryptionKeyShutdownHoursFlag(managed_group) + flags.AddBinAuthzPolicyFlags(parser) + flags.AddBinAuthzBreakglassFlag(parser) + flags.AddCloudSQLFlags(parser) + flags.AddCmekKeyFlag(parser) + flags.AddCmekKeyRevocationActionTypeFlag(parser) + flags.AddCustomAudiencesFlag(parser) + flags.AddEgressSettingsFlag(parser) + flags.AddEncryptionKeyShutdownHoursFlag(parser) flags.AddMinInstancesFlag(parser, resource_kind='worker') flags.AddMaxInstancesFlag(parser, resource_kind='worker') - flags.AddMaxSurgeFlag(managed_group, resource_kind='worker') - flags.AddRevisionSuffixArg(managed_group) - flags.AddSessionAffinityFlag(managed_group) - flags.RemoveContainersFlag().AddToParser(managed_group) - flags.AddVpcNetworkGroupFlagsForUpdate( - managed_group, resource_kind='worker' - ) - flags.AddRuntimeFlag(managed_group) - flags.AddDescriptionFlag(managed_group) - flags.AddVolumesFlags(managed_group, cls.ReleaseTrack()) - flags.AddGpuTypeFlag(managed_group) - flags.SERVICE_MESH_FLAG.AddToParser(managed_group) + flags.AddMaxSurgeFlag(parser, resource_kind='worker') + flags.AddRevisionSuffixArg(parser) + flags.AddSessionAffinityFlag(parser) + flags.RemoveContainersFlag().AddToParser(parser) + flags.AddVpcNetworkGroupFlagsForUpdate(parser, resource_kind='worker') + flags.AddRuntimeFlag(parser) + flags.AddDescriptionFlag(parser) + flags.AddVolumesFlags(parser, cls.ReleaseTrack()) + flags.AddGpuTypeFlag(parser) + flags.SERVICE_MESH_FLAG.AddToParser(parser) container_args = ContainerArgGroup() container_parser.AddContainerFlags(parser, container_args) worker_presentation = presentation_specs.ResourcePresentationSpec( @@ -210,7 +206,9 @@ def Run(self, args): else: if creates_revision: pretty_print.Success( - messages_util.GetSuccessMessageForWorkerDeploy(worker) + messages_util.GetSuccessMessageForWorkerDeploy( + worker, args.no_promote + ) ) else: pretty_print.Success( diff --git a/google-cloud-sdk/lib/surface/scc/findings/create.py b/google-cloud-sdk/lib/surface/scc/findings/create.py index 15a5e2f080..14667bd0fb 100644 --- a/google-cloud-sdk/lib/surface/scc/findings/create.py +++ b/google-cloud-sdk/lib/surface/scc/findings/create.py @@ -33,6 +33,7 @@ @base.ReleaseTracks( base.ReleaseTrack.GA, base.ReleaseTrack.BETA, base.ReleaseTrack.ALPHA ) +@base.UniverseCompatible class Create(base.CreateCommand): """Create a Security Command Center finding.""" @@ -40,38 +41,31 @@ class Create(base.CreateCommand): "DESCRIPTION": "Create a Security Command Center finding.", "EXAMPLES": f""" Create an ACTIVE finding `testFinding` with category: XSS_SCRIPTING - attached to `example-project` under organization `123456` and source + attached to project with project number `9876` under organization `123456` and source `5678`: $ {{command}} `testFinding` --organization=123456 --source=5678 --state=ACTIVE --category='XSS_SCRIPTING' --event-time=2023-01-11T07:00:06.861Z - --resource-name='//cloudresourcemanager.{properties.VALUES.core.universe_domain.Get()}/projects/example-project' + --resource-name='//cloudresourcemanager.{properties.VALUES.core.universe_domain.Get()}/projects/9876' - Create an ACTIVE finding `testFinding` attached to `example-project` - under project `example-project` and source 5678: - - $ {{command}} projects/example-project/sources/5678/findings/testFinding - --state=ACTIVE --category='XSS_SCRIPTING' - --event-time=2023-01-11T07:00:06.861Z - --resource-name='//cloudresourcemanager.{properties.VALUES.core.universe_domain.Get()}/projects/example-project' - - Create an ACTIVE finding `testFinding` attached to `example-project` - under folder `456` and source `5678`: + Create an ACTIVE finding `testFinding` with category: XSS_SCRIPTING + attached to project with project number `9876` under organization `123456` and source + `5678` using the full resource name: - $ {{command}} folders/456/sources/5678/findings/testFinding - --state=ACTIVE --category='XSS_SCRIPTING' - --event-time=2023-01-11T07:00:06.861Z - --resource-name='//cloudresourcemanager.{properties.VALUES.core.universe_domain.Get()}/projects/example-project' + $ {{command}} organizations/123456/sources/5678/findings/testFinding + --state=ACTIVE --category='XSS_SCRIPTING' + --event-time=2023-01-11T07:00:06.861Z + --resource-name='//cloudresourcemanager.{properties.VALUES.core.universe_domain.Get()}/projects/9876' Create an ACTIVE finding `testFinding` with category: `XSS_SCRIPTING` - attached to `example-project` under organization `123456`, source + attached to project with project number`9876` under organization `123456`, source `5678` and `location=eu`: $ {{command}} `testFinding` --organization=123456 --source=5678 --state=ACTIVE --category='XSS_SCRIPTING' --event-time=2023-01-11T07:00:06.861Z - --resource-name='//cloudresourcemanager.{properties.VALUES.core.universe_domain.Get()}/projects/example-project' --location=eu""", + --resource-name='//cloudresourcemanager.{properties.VALUES.core.universe_domain.Get()}/projects/9876' --location=eu""", "API REFERENCE": """ This command uses the Security Command Center API. For more information, diff --git a/google-cloud-sdk/lib/surface/scc/manage/services/describe.py b/google-cloud-sdk/lib/surface/scc/manage/services/describe.py new file mode 100644 index 0000000000..38af0d3fcd --- /dev/null +++ b/google-cloud-sdk/lib/surface/scc/manage/services/describe.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +"""Command to get an SCC service.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.api_lib.scc.manage.services import clients +from googlecloudsdk.calliope import base +from googlecloudsdk.command_lib.scc.manage import flags +from googlecloudsdk.command_lib.scc.manage import parsing + + +@base.Hidden +@base.DefaultUniverseOnly +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +class Describe(base.DescribeCommand): + """Get the details of a Security Command Center service. + + Get the details of a Security Command Center service. It + resolves INHERITED enablement states + to ENABLED or DISABLED for services at ancestor levels. For example, if + the service is enabled + at the ancestor level, services for all child resources will have the + enablement state set to + ENABLED. + + ## EXAMPLES + + To get the details of a Security Command Center service with name + `sha` for organization `123`, run: + + $ {command} sha --organization=123 + + To get the details of a Security Command Center service with name + `sha` for folder `456`, run: + + $ {command} sha --folder=456 + + To get the details of a Security Command Center service with ID + `sha` for project `789`, run: + + $ {command} sha --project=789 + + You can also specify the parent more generally: + + $ {command} sha --parent=organizations/123 + """ + + @staticmethod + def Args(parser): + flags.CreateServiceNameArg().AddToParser(parser) + flags.CreateParentFlag(required=True).AddToParser(parser) + + def Run(self, args): + name = parsing.GetServiceNameFromArgs(args) + + client = clients.SecurityCenterServicesClient() + + return client.Get(name) diff --git a/google-cloud-sdk/lib/surface/scc/manage/services/list.py b/google-cloud-sdk/lib/surface/scc/manage/services/list.py index 629f281187..f0cea24836 100644 --- a/google-cloud-sdk/lib/surface/scc/manage/services/list.py +++ b/google-cloud-sdk/lib/surface/scc/manage/services/list.py @@ -12,7 +12,7 @@ # 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. -"""Command to list the details of a SCC service.""" +"""Command to list the details of an SCC service.""" from __future__ import absolute_import from __future__ import division @@ -25,6 +25,7 @@ @base.Hidden +@base.DefaultUniverseOnly @base.ReleaseTracks(base.ReleaseTrack.ALPHA) class List(base.ListCommand): """List the details of Security Command Center services. diff --git a/google-cloud-sdk/lib/surface/scc/manage/services/update.py b/google-cloud-sdk/lib/surface/scc/manage/services/update.py new file mode 100644 index 0000000000..454af7ed70 --- /dev/null +++ b/google-cloud-sdk/lib/surface/scc/manage/services/update.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +"""Command to update an SCC service.""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import unicode_literals + +from googlecloudsdk.api_lib.scc.manage.services import clients +from googlecloudsdk.calliope import base +from googlecloudsdk.command_lib.scc.manage import flags +from googlecloudsdk.command_lib.scc.manage import parsing +from googlecloudsdk.core.console import console_io + + +@base.Hidden +@base.DefaultUniverseOnly +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +class Update(base.Command): + """Update a Security Command Center service. + + Update the enablement state of the Security Center service and its + corresponding modules for the specified folder, project or organization. + + ## EXAMPLES + + To update a Security Center Service with name `sha` for organization 123, run: + + $ {command} sha + --organization=organizations/123 --enablement-state="ENABLED" + + To update a Security Center Service with name `sha` and its modules for + organization 123, run: + + $ {command} sha + --organization=organizations/123 --enablement-state="ENABLED" + --module-config-file=module_config.yaml + + To validate an update of Security Center Service with name `sha` and its + modules for organization 123, run: + + $ {command} sha + --organization=organizations/123 --enablement-state="ENABLED" + --module-config-file=module_config.yaml --validate-only + """ + + @staticmethod + def Args(parser): + flags.CreateServiceNameArg().AddToParser(parser) + flags.CreateParentFlag(required=True).AddToParser(parser) + flags.CreateValidateOnlyFlag(required=False).AddToParser(parser) + flags.CreateServiceUpdateFlags( + required=True, + file_type='JSON or YAML', + ).AddToParser(parser) + + def Run(self, args): + name = parsing.GetServiceNameFromArgs(args) + + validate_only = args.validate_only + module_config = parsing.GetModuleConfigValueFromArgs( + args.module_config_file + ) + enablement_state = parsing.GetServiceEnablementStateFromArgs( + args.enablement_state + ) + update_mask = parsing.CreateUpdateMaskFromArgsForService(args) + + if not validate_only: + console_io.PromptContinue( + message=( + 'Are you sure you want to update the Security Center Service' + ' {}?\n'.format(name) + ), + cancel_on_no=True, + ) + client = clients.SecurityCenterServicesClient() + + return client.Update( + name=name, + validate_only=validate_only, + module_config=module_config, + enablement_state=enablement_state, + update_mask=update_mask, + ) diff --git a/google-cloud-sdk/lib/surface/seclm/__init__.py b/google-cloud-sdk/lib/surface/seclm/__init__.py new file mode 100644 index 0000000000..647d3d0f4f --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +"""Manage and Query SecLM Workbench resources.""" + +from googlecloudsdk.calliope import base + + +@base.Hidden +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +class SeclmALPHA(base.Group): + """Service to manage SecLM Workbench resources.""" diff --git a/google-cloud-sdk/lib/surface/seclm/operations/__init__.py b/google-cloud-sdk/lib/surface/seclm/operations/__init__.py new file mode 100644 index 0000000000..9974d29c73 --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +"""Manage Operation resources.""" + +from googlecloudsdk.calliope import base + + +@base.Hidden +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +class OperationsALPHA(base.Group): + """Manage Operation resources.""" diff --git a/google-cloud-sdk/lib/surface/seclm/operations/_partials/_cancel_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_cancel_alpha.yaml new file mode 100644 index 0000000000..6c822149e1 --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_cancel_alpha.yaml @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: Cancel an Operation + description: Cancel an Operation + examples: |- + To cancel the operation `myOperation`, run: + + $ {command} myOperation + arguments: + params: + - help_text: |- + The name of the operation resource to be cancelled. + is_positional: true + resource_spec: !REF googlecloudsdk.command_lib.seclm.default_resources:project_location_operation + required: true + request: + api_version: v1alpha + collection: + - seclm.projects.locations.operations + method: cancel diff --git a/google-cloud-sdk/lib/surface/seclm/operations/_partials/_delete_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_delete_alpha.yaml new file mode 100644 index 0000000000..e700f04930 --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_delete_alpha.yaml @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: Delete an Operation + description: Delete an Operation + examples: |- + To delete the operation `myOperation`, run: + + $ {command} myOperation + arguments: + params: + - help_text: |- + The name of the operation resource to be deleted. + is_positional: true + resource_spec: !REF googlecloudsdk.command_lib.seclm.default_resources:project_location_operation + required: true + request: + api_version: v1alpha + collection: + - seclm.projects.locations.operations diff --git a/google-cloud-sdk/lib/surface/seclm/operations/_partials/_describe_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_describe_alpha.yaml new file mode 100644 index 0000000000..cd8b604566 --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_describe_alpha.yaml @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: Describe an Operation + description: Describe an Operation + examples: |- + To describe the operation `myOperation`, run: + + $ {command} myOperation + arguments: + params: + - help_text: |- + The name of the operation resource. + is_positional: true + resource_spec: !REF googlecloudsdk.command_lib.seclm.default_resources:project_location_operation + required: true + request: + api_version: v1alpha + collection: + - seclm.projects.locations.operations diff --git a/google-cloud-sdk/lib/surface/seclm/operations/_partials/_list_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_list_alpha.yaml new file mode 100644 index 0000000000..34141f2b2a --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_list_alpha.yaml @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: List all Operations + description: List all Operations + examples: |- + To list all the operations in all valid locations, run: + + $ {command} myOperation --location=- + arguments: + params: + - help_text: |- + The name of the operation's parent resource. + is_positional: false + resource_spec: !REF googlecloudsdk.command_lib.seclm.default_resources:project_location + required: true + request: + api_version: v1alpha + collection: + - seclm.projects.locations.operations + response: + id_field: name diff --git a/google-cloud-sdk/lib/surface/seclm/operations/_partials/_wait_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_wait_alpha.yaml new file mode 100644 index 0000000000..28fb39e44c --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/_partials/_wait_alpha.yaml @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: Wait for an Operation to complete + description: Wait for an Operation to complete + examples: |- + To wait for the operation `myOperation` to complete, run: + + $ {command} myOperation + arguments: + params: + - help_text: |- + The name of the operation resource to wait on. + is_positional: true + resource_spec: !REF googlecloudsdk.command_lib.seclm.default_resources:project_location_operation + required: true + request: + api_version: v1alpha + collection: + - seclm.projects.locations.operations + async: + collection: + - seclm.projects.locations.operations diff --git a/google-cloud-sdk/lib/surface/seclm/operations/cancel.yaml b/google-cloud-sdk/lib/surface/seclm/operations/cancel.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/cancel.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/operations/delete.yaml b/google-cloud-sdk/lib/surface/seclm/operations/delete.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/delete.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/operations/describe.yaml b/google-cloud-sdk/lib/surface/seclm/operations/describe.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/describe.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/operations/list.yaml b/google-cloud-sdk/lib/surface/seclm/operations/list.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/list.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/operations/wait.yaml b/google-cloud-sdk/lib/surface/seclm/operations/wait.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/operations/wait.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/__init__.py b/google-cloud-sdk/lib/surface/seclm/workbenches/__init__.py new file mode 100644 index 0000000000..c34a05c4e4 --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +"""SecLM Workbench.""" + +from googlecloudsdk.calliope import base + + +@base.Hidden +@base.ReleaseTracks(base.ReleaseTrack.ALPHA) +class WorkbenchesALPHA(base.Group): + """Manage Workbench instance resources.""" diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_create_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_create_alpha.yaml new file mode 100644 index 0000000000..245326a842 --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_create_alpha.yaml @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: Creates a Workbench + description: | + Creates a Workbench instance. + If run asynchronously with --async, exits after printing an operation that can + be used to poll the status of the creation operation. + + create --location= [--async] [--labels] + examples: |- + To create an instance `my-workbench` in location `us-central1` run: + + $ {command} my-workbench --location=us-central1 + arguments: + params: + - help_text: |- + Identifier. Name of resource. + is_positional: true + request_id_field: workbenchId + resource_spec: !REF googlecloudsdk.command_lib.seclm.v1alpha_resources:project_location_workbench + required: true + - arg_name: labels + api_field: workbench.labels + required: false + repeated: true + help_text: |- + Labels as key value pairs. + spec: + - api_field: key + - api_field: value + request: + api_version: v1alpha + collection: + - seclm.projects.locations.workbenches + async: + collection: + - seclm.projects.locations.operations diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_delete_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_delete_alpha.yaml new file mode 100644 index 0000000000..17da1732fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_delete_alpha.yaml @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: Deletes a single Workbench instance + description: | + Deletes a single Workbench instance. + + delete --location= + examples: |- + To delete a workbench instance `my-workbench` run: + + $ {command} my-workbench --location=us-central1 + arguments: + params: + - help_text: |- + Name of the resource. + is_positional: true + resource_spec: !REF googlecloudsdk.command_lib.seclm.v1alpha_resources:project_location_workbench + required: true + - arg_name: request-id + api_field: requestId + required: false + repeated: false + help_text: |- + 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). + request: + api_version: v1alpha + collection: + - seclm.projects.locations.workbenches + async: + collection: + - seclm.projects.locations.operations diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_describe_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_describe_alpha.yaml new file mode 100644 index 0000000000..c18a17697d --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_describe_alpha.yaml @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: Gets a Workbench + description: | + Gets details of a single Workbench instance. + + describe --location= + examples: |- + To get the details of a single workbench `my-workbench in location `us-central1` run: + + $ {command} my-workbench --location=us-central1 + arguments: + params: + - help_text: |- + Name of the resource. + is_positional: true + resource_spec: !REF googlecloudsdk.command_lib.seclm.v1alpha_resources:project_location_workbench + required: true + request: + api_version: v1alpha + collection: + - seclm.projects.locations.workbenches diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_list_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_list_alpha.yaml new file mode 100644 index 0000000000..6d1c8e3c80 --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_list_alpha.yaml @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: List Workbenches + description: | + List Workbenches by location. + + list --location= + examples: |- + To list all instances in particular location `us-central1` run: + + $ {command} --location=us-central1 + arguments: + params: + - help_text: |- + Parent value for ListWorkbenchesRequest. + is_positional: false + resource_spec: !REF googlecloudsdk.command_lib.seclm.v1alpha_resources:project_location + required: true + request: + api_version: v1alpha + collection: + - seclm.projects.locations.workbenches + response: + id_field: name + output: + format: |- + table(name, + createTime, + updateTime, + labels.join(",")) diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_query_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_query_alpha.yaml new file mode 100644 index 0000000000..13130fe488 --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_query_alpha.yaml @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: Runs a query against a single Workbench instance + description: | + Runs a query against a single Workbench instance. + + If run asynchronously with --async, exits after printing an operation that can + be used to poll the status of the creation operation. + + query --location= --query= [--async] [--labels] + examples: |- + To query workbench `my-workbench` run: + + $ {command} my-workbench --location=us-central1 --query="What is lateral movement?" + arguments: + params: + - help_text: |- + Name of the resource. + is_positional: true + resource_spec: !REF googlecloudsdk.command_lib.seclm.v1alpha_resources:project_location_workbench + required: true + - arg_name: query + api_field: workbenchQueryRequest.query + required: true + repeated: false + help_text: | + The query from user. + - arg_name: contents + api_field: workbenchQueryRequest.contents + required: false + repeated: true + help_text: |- + The content of the current conversation with the model. + + For single-turn queries, this is a single instance. For multi-turn queries, + this is a repeated field that contains conversation history + latest + request. + spec: + - api_field: role + help_text: |- + The producer of the content. Must be either 'user' or 'model'. + + Useful to set for multi-turn conversations, otherwise can be left blank + or unset. + - api_field: parts + help_text: |- + Ordered `Parts` that constitute a single message. Parts may have different + IANA MIME types. + spec: + - api_field: text + one_of_index: 0 + help_text: |- + Text part (can be code). + - arg_name: safety-settings + api_field: workbenchQueryRequest.safetySettings + required: false + repeated: true + help_text: |- + Per request settings for blocking unsafe content. + Enforced on GenerateContentResponse.candidates. + spec: + - api_field: category + help_text: |- + The category for this setting. + - api_field: threshold + help_text: |- + Controls the probability threshold at which harm is blocked. + request: + api_version: v1alpha + collection: + - seclm.projects.locations.workbenches + method: query diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_update_alpha.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_update_alpha.yaml new file mode 100644 index 0000000000..35c2ad0b95 --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/_partials/_update_alpha.yaml @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +- release_tracks: + - ALPHA + hidden: true + help_text: + brief: Updates the parameters of a single Workbench + description: | + Updates the parameters of a single Workbench. + If run asynchronously with --async, exits after printing an operation that can + be used to poll the status of the creation operation. + + update --location= [--async] [--labels] + examples: |- + To update the description of an instance `my-workbench` in location `us-central1` run: + + $ {command} my-workbench --location=us-central1 + arguments: + params: + - help_text: |- + Identifier. Name of resource. + is_positional: true + resource_spec: !REF googlecloudsdk.command_lib.seclm.v1alpha_resources:project_location_workbench + required: true + - arg_name: labels + api_field: workbench.labels + required: false + repeated: true + help_text: |- + Labels as key value pairs. + clearable: true + spec: + - api_field: key + - api_field: value + request: + api_version: v1alpha + collection: + - seclm.projects.locations.workbenches + static_fields: + updateMask: '*' + async: + collection: + - seclm.projects.locations.operations + update: + read_modify_update: true + disable_auto_field_mask: true diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/create.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/create.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/create.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/delete.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/delete.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/delete.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/describe.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/describe.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/describe.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/list.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/list.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/list.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/query.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/query.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/query.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/seclm/workbenches/update.yaml b/google-cloud-sdk/lib/surface/seclm/workbenches/update.yaml new file mode 100644 index 0000000000..ee0e4655fd --- /dev/null +++ b/google-cloud-sdk/lib/surface/seclm/workbenches/update.yaml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- # +# Copyright 2024 Google LLC. All Rights Reserved. +# +# 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. +# +# NOTE: This file is autogenerated and should not be edited by hand. +# AUTOGEN_CLI_VERSION: HEAD +_PARTIALS_: true diff --git a/google-cloud-sdk/lib/surface/sql/instances/delete.py b/google-cloud-sdk/lib/surface/sql/instances/delete.py index 1dd0342f7d..c7809be76b 100644 --- a/google-cloud-sdk/lib/surface/sql/instances/delete.py +++ b/google-cloud-sdk/lib/surface/sql/instances/delete.py @@ -86,16 +86,23 @@ def Run(self, args): collection='sql.instances') if not console_io.PromptContinue( - 'All of the instance data will be lost when the instance is deleted.'): + 'All of the instance data will be lost when the instance is deleted.' + ): return None expiry_time = None - retention_days = args.final_backup_retention_days + if ( + args.final_backup_retention_days is not None + and args.final_backup_retention_days > 0 + ): + retention_days = args.final_backup_retention_days + else: + retention_days = None + if args.final_backup_expiry_time is not None: expiry_time = args.final_backup_expiry_time.strftime( '%Y-%m-%dT%H:%M:%S.%fZ' ) - retention_days = None try: result = sql_client.instances.Delete( diff --git a/google-cloud-sdk/lib/third_party/apitools/base/protorpclite/util.py b/google-cloud-sdk/lib/third_party/apitools/base/protorpclite/util.py index 496c16f35d..c996312fcb 100644 --- a/google-cloud-sdk/lib/third_party/apitools/base/protorpclite/util.py +++ b/google-cloud-sdk/lib/third_party/apitools/base/protorpclite/util.py @@ -148,9 +148,7 @@ def positional_wrapper(*args, **kwargs): if isinstance(max_positional_args, six.integer_types): return positional_decorator else: - argspec = inspect.getfullargspec(max_positional_args) - args = argspec.args - defaults = argspec.defaults + args, _, _, defaults, *_ = inspect.getfullargspec(max_positional_args) if defaults is None: raise ValueError( 'Functions with no keyword arguments must specify ' diff --git a/google-cloud-sdk/lib/third_party/apitools/base/py/list_pager.py b/google-cloud-sdk/lib/third_party/apitools/base/py/list_pager.py index 0b40f4f71e..a2c10803d9 100644 --- a/google-cloud-sdk/lib/third_party/apitools/base/py/list_pager.py +++ b/google-cloud-sdk/lib/third_party/apitools/base/py/list_pager.py @@ -92,7 +92,7 @@ def YieldFromList( response message holding the page token for the next page. If a tuple, path to the attribute. batch_size_attribute: str or tuple, The name of the attribute in a - request message holding the maximum number of results to be + response message holding the maximum number of results to be returned. None if caller-specified batch size is unsupported. If a tuple, path to the attribute. get_field_func: Function that returns the items to be yielded. Argument diff --git a/google-cloud-sdk/lib/third_party/apitools/gen/service_registry.py b/google-cloud-sdk/lib/third_party/apitools/gen/service_registry.py index a52255d53e..6d396aa03e 100644 --- a/google-cloud-sdk/lib/third_party/apitools/gen/service_registry.py +++ b/google-cloud-sdk/lib/third_party/apitools/gen/service_registry.py @@ -285,11 +285,10 @@ def __CreateRequestType(self, method_description, body_type=None): if k not in ordered_parameters: ordered_parameters.append(k) for parameter_name in ordered_parameters: - field_name = self.__names.CleanName(parameter_name) field = dict(method_description['parameters'][parameter_name]) if 'type' not in field: raise ValueError('No type found in parameter %s' % field) - schema['properties'][field_name] = field + schema['properties'][parameter_name] = field if body_type is not None: body_field_name = self.__GetRequestField( method_description, body_type) diff --git a/list.txt b/list.txt index f8d6bafae9..922953a002 100644 --- a/list.txt +++ b/list.txt @@ -219,10 +219,14 @@ 22857912 2024-04-23T14:45:22Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthos-auth_473.0.0.orig_amd64.tar.gz 21402314 2024-04-30T15:20:19Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthos-auth_474.0.0.orig_aarch64.tar.gz 23112358 2024-04-30T15:20:18Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthos-auth_474.0.0.orig_amd64.tar.gz + 21402295 2024-05-07T15:20:56Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthos-auth_475.0.0.orig_aarch64.tar.gz + 23112363 2024-05-07T15:20:32Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthos-auth_475.0.0.orig_amd64.tar.gz 67455346 2024-04-23T14:44:52Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthoscli_473.0.0.orig_aarch64.tar.gz 72231244 2024-04-23T14:42:32Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthoscli_473.0.0.orig_amd64.tar.gz 67455360 2024-04-30T15:19:23Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthoscli_474.0.0.orig_aarch64.tar.gz 72231245 2024-04-30T15:19:56Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthoscli_474.0.0.orig_amd64.tar.gz + 67455351 2024-05-07T15:20:26Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthoscli_475.0.0.orig_aarch64.tar.gz + 72231242 2024-05-07T15:21:35Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-anthoscli_475.0.0.orig_amd64.tar.gz 4408130 2022-02-01T15:42:11Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-go_371.0.0.orig_amd64.tar.gz 4420341 2022-02-01T15:41:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-go_371.0.0.orig_i386.tar.gz 4408128 2022-02-08T17:36:41Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-go_372.0.0.orig_amd64.tar.gz @@ -478,6 +482,9 @@ 4629472 2024-04-30T15:19:59Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-go_474.0.0.orig_aarch64.tar.gz 4958384 2024-04-30T15:19:08Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-go_474.0.0.orig_amd64.tar.gz 4811393 2024-04-30T15:19:06Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-go_474.0.0.orig_i386.tar.gz + 4629478 2024-05-07T15:21:07Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-go_475.0.0.orig_aarch64.tar.gz + 4958395 2024-05-07T15:21:25Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-go_475.0.0.orig_amd64.tar.gz + 4811393 2024-05-07T15:20:19Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-go_475.0.0.orig_i386.tar.gz 2139690 2022-02-01T15:42:12Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-grpc_371.0.0.orig_amd64.tar.gz 2086014 2022-02-01T15:42:07Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-grpc_371.0.0.orig_i386.tar.gz 2139691 2022-02-08T17:36:02Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-grpc_372.0.0.orig_amd64.tar.gz @@ -712,6 +719,8 @@ 2087570 2024-04-23T14:46:08Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-grpc_473.0.0.orig_i386.tar.gz 2141296 2024-04-30T15:19:09Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-grpc_474.0.0.orig_amd64.tar.gz 2087569 2024-04-30T15:19:57Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-grpc_474.0.0.orig_i386.tar.gz + 2141298 2024-05-07T15:21:13Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-grpc_475.0.0.orig_amd64.tar.gz + 2087570 2024-05-07T15:20:27Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-grpc_475.0.0.orig_i386.tar.gz 54157877 2022-02-01T15:42:27Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-java_371.0.0.orig.tar.gz 54157856 2022-02-08T17:35:38Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-java_372.0.0.orig.tar.gz 54157857 2022-02-15T16:36:28Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-java_373.0.0.orig.tar.gz @@ -829,6 +838,7 @@ 132337467 2024-04-16T12:37:08Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-java_472.0.0.orig.tar.gz 132337480 2024-04-23T14:43:43Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-java_473.0.0.orig.tar.gz 132337480 2024-04-30T15:18:59Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-java_474.0.0.orig.tar.gz + 132337477 2024-05-07T15:20:58Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-java_475.0.0.orig.tar.gz 27968600 2022-02-01T15:42:06Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python-extras_371.0.0.orig.tar.gz 27968624 2022-02-08T17:36:36Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python-extras_372.0.0.orig.tar.gz 27968624 2022-02-15T16:35:33Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python-extras_373.0.0.orig.tar.gz @@ -946,6 +956,7 @@ 2543 2024-04-16T12:35:11Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python-extras_472.0.0.orig.tar.gz 2544 2024-04-23T14:42:17Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python-extras_473.0.0.orig.tar.gz 2543 2024-04-30T15:19:30Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python-extras_474.0.0.orig.tar.gz + 2543 2024-05-07T15:20:32Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python-extras_475.0.0.orig.tar.gz 8187003 2022-02-01T15:42:24Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python_371.0.0.orig.tar.gz 8186995 2022-02-08T17:35:25Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python_372.0.0.orig.tar.gz 8187002 2022-02-15T16:31:31Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python_373.0.0.orig.tar.gz @@ -1063,6 +1074,7 @@ 5248040 2024-04-16T12:35:20Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python_472.0.0.orig.tar.gz 5248040 2024-04-23T14:45:10Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python_473.0.0.orig.tar.gz 5248040 2024-04-30T15:19:07Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python_474.0.0.orig.tar.gz + 5248046 2024-05-07T15:21:09Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-app-engine-python_475.0.0.orig.tar.gz 6335013 2022-02-01T15:42:33Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-bigtable-emulator_371.0.0.orig_amd64.tar.gz 6024186 2022-02-01T15:42:03Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-bigtable-emulator_371.0.0.orig_i386.tar.gz 6335013 2022-02-08T17:36:40Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-bigtable-emulator_372.0.0.orig_amd64.tar.gz @@ -1318,6 +1330,9 @@ 7211117 2024-04-30T15:19:09Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-bigtable-emulator_474.0.0.orig_aarch64.tar.gz 7669225 2024-04-30T15:19:52Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-bigtable-emulator_474.0.0.orig_amd64.tar.gz 7374831 2024-04-30T15:19:39Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-bigtable-emulator_474.0.0.orig_i386.tar.gz + 7211115 2024-05-07T15:21:40Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-bigtable-emulator_475.0.0.orig_aarch64.tar.gz + 7669219 2024-05-07T15:20:18Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-bigtable-emulator_475.0.0.orig_amd64.tar.gz + 7374814 2024-05-07T15:21:03Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-bigtable-emulator_475.0.0.orig_i386.tar.gz 8460747 2022-02-01T15:42:00Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cbt_371.0.0.orig_amd64.tar.gz 8009607 2022-02-01T15:41:22Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cbt_371.0.0.orig_i386.tar.gz 8460747 2022-02-08T17:36:27Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cbt_372.0.0.orig_amd64.tar.gz @@ -1646,6 +1661,9 @@ 17064995 2024-04-30T15:18:59Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cbt_474.0.0.orig_aarch64.tar.gz 18167916 2024-04-30T15:18:49Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cbt_474.0.0.orig_amd64.tar.gz 16861241 2024-04-30T15:19:45Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cbt_474.0.0.orig_i386.tar.gz + 17064996 2024-05-07T15:21:08Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cbt_475.0.0.orig_aarch64.tar.gz + 18167924 2024-05-07T15:20:29Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cbt_475.0.0.orig_amd64.tar.gz + 16861237 2024-05-07T15:21:43Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cbt_475.0.0.orig_i386.tar.gz 6592347 2022-02-01T15:41:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-build-local_371.0.0.orig_amd64.tar.gz 6347370 2022-02-01T15:42:13Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-build-local_371.0.0.orig_i386.tar.gz 6592353 2022-02-08T17:35:39Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-build-local_372.0.0.orig_amd64.tar.gz @@ -1880,6 +1898,8 @@ 6347330 2024-04-23T14:44:15Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-build-local_473.0.0.orig_i386.tar.gz 6592378 2024-04-30T15:20:04Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-build-local_474.0.0.orig_amd64.tar.gz 6347332 2024-04-30T15:20:21Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-build-local_474.0.0.orig_i386.tar.gz + 6592373 2024-05-07T15:20:19Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-build-local_475.0.0.orig_amd64.tar.gz + 6347331 2024-05-07T15:20:59Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-build-local_475.0.0.orig_i386.tar.gz 5378491 2022-02-01T15:42:30Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-run-proxy_371.0.0.orig_amd64.tar.gz 5378492 2022-02-08T17:36:33Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-run-proxy_372.0.0.orig_amd64.tar.gz 5378491 2022-02-15T16:34:27Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-run-proxy_373.0.0.orig_amd64.tar.gz @@ -2018,6 +2038,8 @@ 13963562 2024-04-23T14:44:06Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-run-proxy_473.0.0.orig_amd64.tar.gz 11807973 2024-04-30T15:20:00Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-run-proxy_474.0.0.orig_aarch64.tar.gz 13963547 2024-04-30T15:19:25Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-run-proxy_474.0.0.orig_amd64.tar.gz + 11807975 2024-05-07T15:21:18Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-run-proxy_475.0.0.orig_aarch64.tar.gz + 13963554 2024-05-07T15:20:28Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-cloud-run-proxy_475.0.0.orig_amd64.tar.gz 51871663 2022-02-01T15:42:15Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-config-connector_371.0.0.orig_amd64.tar.gz 51999533 2022-02-08T17:35:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-config-connector_372.0.0.orig_amd64.tar.gz 52015183 2022-02-15T16:35:09Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-config-connector_373.0.0.orig_amd64.tar.gz @@ -2229,6 +2251,8 @@ 59463189 2024-04-23T14:45:40Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-config-connector_473.0.0.orig_amd64.tar.gz 54695152 2024-04-30T15:19:43Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-config-connector_474.0.0.orig_aarch64.tar.gz 59463202 2024-04-30T15:20:08Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-config-connector_474.0.0.orig_amd64.tar.gz + 54695146 2024-05-07T15:20:48Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-config-connector_475.0.0.orig_aarch64.tar.gz + 59463179 2024-05-07T15:20:40Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-config-connector_475.0.0.orig_amd64.tar.gz 75758 2022-02-01T15:41:47Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-datalab_371.0.0.orig.tar.gz 75761 2022-02-08T17:36:38Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-datalab_372.0.0.orig.tar.gz 75760 2022-02-15T16:31:03Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-datalab_373.0.0.orig.tar.gz @@ -2393,6 +2417,7 @@ 37925560 2024-04-16T12:36:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-datastore-emulator_472.0.0.orig.tar.gz 37925560 2024-04-23T14:45:32Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-datastore-emulator_473.0.0.orig.tar.gz 37925566 2024-04-30T15:18:51Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-datastore-emulator_474.0.0.orig.tar.gz + 37925565 2024-05-07T15:21:31Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-datastore-emulator_475.0.0.orig.tar.gz 2081584 2023-12-05T16:18:06Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-docker-credential-gcr_456.0.0.orig_aarch64.tar.gz 1884077 2023-12-05T16:18:05Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-docker-credential-gcr_456.0.0.orig_amd64.tar.gz 2081588 2023-12-12T15:46:17Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-docker-credential-gcr_457.0.0.orig_aarch64.tar.gz @@ -2435,6 +2460,8 @@ 1884078 2024-04-23T14:44:26Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-docker-credential-gcr_473.0.0.orig_amd64.tar.gz 2081582 2024-04-30T15:19:24Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-docker-credential-gcr_474.0.0.orig_aarch64.tar.gz 1884070 2024-04-30T15:19:54Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-docker-credential-gcr_474.0.0.orig_amd64.tar.gz + 2081583 2024-05-07T15:20:27Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-docker-credential-gcr_475.0.0.orig_aarch64.tar.gz + 1884070 2024-05-07T15:21:42Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-docker-credential-gcr_475.0.0.orig_amd64.tar.gz 8594088 2023-01-24T16:52:09Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-enterprise-certificate-proxy_415.0.0.orig_amd64.tar.gz 8594156 2023-01-31T17:05:58Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-enterprise-certificate-proxy_416.0.0.orig_amd64.tar.gz 8594157 2023-02-07T16:03:02Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-enterprise-certificate-proxy_417.0.0.orig_amd64.tar.gz @@ -2504,6 +2531,7 @@ 9015729 2024-04-16T12:38:09Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-enterprise-certificate-proxy_472.0.0.orig_amd64.tar.gz 9015729 2024-04-23T14:45:55Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-enterprise-certificate-proxy_473.0.0.orig_amd64.tar.gz 9015714 2024-04-30T15:20:21Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-enterprise-certificate-proxy_474.0.0.orig_amd64.tar.gz + 9015730 2024-05-07T15:21:19Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-enterprise-certificate-proxy_475.0.0.orig_amd64.tar.gz 42435217 2022-02-01T15:42:32Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-firestore-emulator_371.0.0.orig.tar.gz 42435206 2022-02-08T17:36:56Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-firestore-emulator_372.0.0.orig.tar.gz 42435217 2022-02-15T16:33:16Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-firestore-emulator_373.0.0.orig.tar.gz @@ -2621,6 +2649,7 @@ 46930774 2024-04-16T12:38:06Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-firestore-emulator_472.0.0.orig.tar.gz 46930773 2024-04-23T14:44:12Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-firestore-emulator_473.0.0.orig.tar.gz 46930773 2024-04-30T15:20:09Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-firestore-emulator_474.0.0.orig.tar.gz + 47265405 2024-05-07T15:20:42Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-firestore-emulator_475.0.0.orig.tar.gz 3612386 2022-02-01T15:42:25Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-gke-gcloud-auth-plugin_371.0.0.orig_amd64.tar.gz 3612386 2022-02-08T17:35:40Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-gke-gcloud-auth-plugin_372.0.0.orig_amd64.tar.gz 3612393 2022-02-15T16:31:52Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-gke-gcloud-auth-plugin_373.0.0.orig_amd64.tar.gz @@ -2832,6 +2861,8 @@ 8324348 2024-04-23T14:43:34Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-gke-gcloud-auth-plugin_473.0.0.orig_amd64.tar.gz 7696633 2024-04-30T15:20:20Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-gke-gcloud-auth-plugin_474.0.0.orig_aarch64.tar.gz 8324357 2024-04-30T15:19:44Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-gke-gcloud-auth-plugin_474.0.0.orig_amd64.tar.gz + 7696628 2024-05-07T15:20:33Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-gke-gcloud-auth-plugin_475.0.0.orig_aarch64.tar.gz + 8324368 2024-05-07T15:20:50Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-gke-gcloud-auth-plugin_475.0.0.orig_amd64.tar.gz 15547472 2022-07-20T02:22:24Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-harbourbridge_394.0.0.orig_amd64.tar.gz 15547461 2022-07-26T16:31:27Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-harbourbridge_395.0.0.orig_amd64.tar.gz 15547460 2022-08-02T15:37:39Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-harbourbridge_396.0.0.orig_amd64.tar.gz @@ -2924,6 +2955,7 @@ 21898017 2024-04-16T12:37:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-harbourbridge_472.0.0.orig_amd64.tar.gz 21898027 2024-04-23T14:42:09Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-harbourbridge_473.0.0.orig_amd64.tar.gz 21898005 2024-04-30T15:19:30Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-harbourbridge_474.0.0.orig_amd64.tar.gz + 21898008 2024-05-07T15:21:06Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-harbourbridge_475.0.0.orig_amd64.tar.gz 22325481 2023-12-19T15:47:18Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-istioctl_458.0.0.orig_aarch64.tar.gz 24474583 2023-12-19T15:45:17Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-istioctl_458.0.0.orig_amd64.tar.gz 22325480 2023-12-21T03:08:54Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-istioctl_458.0.1.orig_aarch64.tar.gz @@ -2962,6 +2994,8 @@ 25203179 2024-04-23T14:45:13Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-istioctl_473.0.0.orig_amd64.tar.gz 23006378 2024-04-30T15:19:21Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-istioctl_474.0.0.orig_aarch64.tar.gz 25203156 2024-04-30T15:19:36Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-istioctl_474.0.0.orig_amd64.tar.gz + 23006373 2024-05-07T15:20:36Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-istioctl_475.0.0.orig_aarch64.tar.gz + 25203173 2024-05-07T15:20:24Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-istioctl_475.0.0.orig_amd64.tar.gz 12167585 2022-02-01T15:41:36Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kpt_371.0.0.orig_amd64.tar.gz 12142466 2022-02-08T17:37:02Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kpt_372.0.0.orig_amd64.tar.gz 12142465 2022-02-15T16:33:30Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kpt_373.0.0.orig_amd64.tar.gz @@ -3100,6 +3134,8 @@ 15092509 2024-04-23T14:43:23Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kpt_473.0.0.orig_amd64.tar.gz 13631147 2024-04-30T15:19:28Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kpt_474.0.0.orig_aarch64.tar.gz 15092505 2024-04-30T15:20:16Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kpt_474.0.0.orig_amd64.tar.gz + 13631155 2024-05-07T15:21:06Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kpt_475.0.0.orig_aarch64.tar.gz + 15092509 2024-05-07T15:21:22Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kpt_475.0.0.orig_amd64.tar.gz 19045402 2022-02-01T15:41:40Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kubectl-oidc_371.0.0.orig_amd64.tar.gz 19045394 2022-02-08T17:37:08Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kubectl-oidc_372.0.0.orig_amd64.tar.gz 19045393 2022-02-15T16:33:52Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kubectl-oidc_373.0.0.orig_amd64.tar.gz @@ -3311,6 +3347,8 @@ 22857925 2024-04-23T14:41:55Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kubectl-oidc_473.0.0.orig_amd64.tar.gz 21402318 2024-04-30T15:19:53Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kubectl-oidc_474.0.0.orig_aarch64.tar.gz 23112362 2024-04-30T15:19:01Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kubectl-oidc_474.0.0.orig_amd64.tar.gz + 21402322 2024-05-07T15:21:12Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kubectl-oidc_475.0.0.orig_aarch64.tar.gz + 23112376 2024-05-07T15:21:00Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-kubectl-oidc_475.0.0.orig_amd64.tar.gz 15284419 2022-02-01T15:41:30Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-local-extract_371.0.0.orig_amd64.tar.gz 15563587 2022-02-08T17:37:11Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-local-extract_372.0.0.orig_amd64.tar.gz 15563583 2022-02-15T16:32:12Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-local-extract_373.0.0.orig_amd64.tar.gz @@ -3449,6 +3487,8 @@ 15051625 2024-04-23T14:44:19Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-local-extract_473.0.0.orig_amd64.tar.gz 14150041 2024-04-30T15:19:24Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-local-extract_474.0.0.orig_aarch64.tar.gz 15051613 2024-04-30T15:19:45Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-local-extract_474.0.0.orig_amd64.tar.gz + 14150039 2024-05-07T15:21:02Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-local-extract_475.0.0.orig_aarch64.tar.gz + 15051612 2024-05-07T15:20:31Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-local-extract_475.0.0.orig_amd64.tar.gz 14361121 2022-10-18T01:51:04Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-log-streaming_406.0.0.orig_amd64.tar.gz 14361110 2022-10-25T16:12:55Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-log-streaming_407.0.0.orig_amd64.tar.gz 14571302 2022-11-01T16:33:35Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-log-streaming_408.0.0.orig_amd64.tar.gz @@ -3549,6 +3589,8 @@ 14571292 2024-04-23T14:44:35Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-log-streaming_473.0.0.orig_amd64.tar.gz 12320042 2024-04-30T15:19:40Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-log-streaming_474.0.0.orig_aarch64.tar.gz 14571301 2024-04-30T15:19:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-log-streaming_474.0.0.orig_amd64.tar.gz + 12320039 2024-05-07T15:21:01Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-log-streaming_475.0.0.orig_aarch64.tar.gz + 14571306 2024-05-07T15:21:38Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-log-streaming_475.0.0.orig_amd64.tar.gz 28379133 2022-02-01T15:41:45Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-minikube_371.0.0.orig_amd64.tar.gz 28379141 2022-02-08T17:36:04Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-minikube_372.0.0.orig_amd64.tar.gz 28379132 2022-02-15T16:31:10Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-minikube_373.0.0.orig_amd64.tar.gz @@ -3841,6 +3883,8 @@ 37113496 2024-04-23T14:41:23Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-minikube_473.0.0.orig_amd64.tar.gz 34569273 2024-04-30T15:20:05Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-minikube_474.0.0.orig_aarch64.tar.gz 37113480 2024-04-30T15:20:02Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-minikube_474.0.0.orig_amd64.tar.gz + 34569280 2024-05-07T15:20:52Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-minikube_475.0.0.orig_aarch64.tar.gz + 37113486 2024-05-07T15:21:29Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-minikube_475.0.0.orig_amd64.tar.gz 25057451 2022-02-01T15:41:43Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-nomos_371.0.0.orig_amd64.tar.gz 25058573 2022-02-08T17:36:52Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-nomos_372.0.0.orig_amd64.tar.gz 25058573 2022-02-15T16:31:21Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-nomos_373.0.0.orig_amd64.tar.gz @@ -3958,6 +4002,7 @@ 30146185 2024-04-16T12:35:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-nomos_472.0.0.orig_amd64.tar.gz 30146193 2024-04-23T14:42:13Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-nomos_473.0.0.orig_amd64.tar.gz 30146184 2024-04-30T15:18:47Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-nomos_474.0.0.orig_amd64.tar.gz + 30146193 2024-05-07T15:20:35Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-nomos_475.0.0.orig_amd64.tar.gz 836460 2022-07-20T02:22:33Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-package-go-module_394.0.0.orig_amd64.tar.gz 836460 2022-07-26T16:31:29Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-package-go-module_395.0.0.orig_amd64.tar.gz 836455 2022-08-02T15:38:41Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-package-go-module_396.0.0.orig_amd64.tar.gz @@ -4125,6 +4170,8 @@ 886893 2024-04-23T14:45:50Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-package-go-module_473.0.0.orig_amd64.tar.gz 831476 2024-04-30T15:19:09Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-package-go-module_474.0.0.orig_aarch64.tar.gz 886895 2024-04-30T15:19:10Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-package-go-module_474.0.0.orig_amd64.tar.gz + 831477 2024-05-07T15:21:36Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-package-go-module_475.0.0.orig_aarch64.tar.gz + 886893 2024-05-07T15:21:38Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-package-go-module_475.0.0.orig_amd64.tar.gz 63688194 2022-02-01T15:41:49Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-pubsub-emulator_371.0.0.orig.tar.gz 63688194 2022-02-08T17:35:58Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-pubsub-emulator_372.0.0.orig.tar.gz 63688193 2022-02-15T16:34:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-pubsub-emulator_373.0.0.orig.tar.gz @@ -4242,6 +4289,7 @@ 66389429 2024-04-16T12:37:23Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-pubsub-emulator_472.0.0.orig.tar.gz 66777548 2024-04-23T14:41:29Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-pubsub-emulator_473.0.0.orig.tar.gz 66777576 2024-04-30T15:19:05Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-pubsub-emulator_474.0.0.orig.tar.gz + 66777563 2024-05-07T15:21:45Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-pubsub-emulator_475.0.0.orig.tar.gz 18510946 2022-02-01T15:41:29Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-skaffold_371.0.0.orig_amd64.tar.gz 18510938 2022-02-08T17:35:48Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-skaffold_372.0.0.orig_amd64.tar.gz 18510946 2022-02-15T16:33:36Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-skaffold_373.0.0.orig_amd64.tar.gz @@ -4461,6 +4509,8 @@ 25254209 2024-04-23T14:43:05Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-skaffold_473.0.0.orig_amd64.tar.gz 23133924 2024-04-30T15:19:29Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-skaffold_474.0.0.orig_aarch64.tar.gz 25254209 2024-04-30T15:19:02Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-skaffold_474.0.0.orig_amd64.tar.gz + 23133925 2024-05-07T15:21:37Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-skaffold_475.0.0.orig_aarch64.tar.gz + 25254210 2024-05-07T15:21:41Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-skaffold_475.0.0.orig_amd64.tar.gz 23802124 2022-02-01T15:42:34Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-emulator_371.0.0.orig_amd64.tar.gz 23802128 2022-02-08T17:36:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-emulator_372.0.0.orig_amd64.tar.gz 28511323 2022-02-15T16:34:01Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-emulator_373.0.0.orig_amd64.tar.gz @@ -4578,6 +4628,7 @@ 37921593 2024-04-16T12:36:38Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-emulator_472.0.0.orig_amd64.tar.gz 37921599 2024-04-23T14:44:31Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-emulator_473.0.0.orig_amd64.tar.gz 38255407 2024-04-30T15:19:47Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-emulator_474.0.0.orig_amd64.tar.gz + 38255415 2024-05-07T15:21:05Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-emulator_475.0.0.orig_amd64.tar.gz 21911846 2023-08-08T15:09:19Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-migration-tool_442.0.0.orig_amd64.tar.gz 21911844 2023-08-15T11:48:15Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-migration-tool_443.0.0.orig_amd64.tar.gz 21916451 2023-08-22T18:51:42Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-migration-tool_444.0.0.orig_amd64.tar.gz @@ -4616,6 +4667,7 @@ 24681717 2024-04-16T12:37:34Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-migration-tool_472.0.0.orig_amd64.tar.gz 24681694 2024-04-23T14:43:15Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-migration-tool_473.0.0.orig_amd64.tar.gz 24681738 2024-04-30T15:19:39Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-migration-tool_474.0.0.orig_amd64.tar.gz + 24681717 2024-05-07T15:21:40Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-spanner-migration-tool_475.0.0.orig_amd64.tar.gz 50158472 2022-03-29T17:41:14Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-tools_379.0.0.orig_amd64.tar.gz 50158446 2022-04-05T16:04:34Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-tools_380.0.0.orig_amd64.tar.gz 50158834 2022-04-12T13:54:05Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-tools_381.0.0.orig_amd64.tar.gz @@ -4746,6 +4798,8 @@ 69360348 2024-04-23T14:42:39Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-tools_473.0.0.orig_amd64.tar.gz 64184130 2024-04-30T15:19:58Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-tools_474.0.0.orig_aarch64.tar.gz 69360352 2024-04-30T15:19:33Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-tools_474.0.0.orig_amd64.tar.gz + 64184111 2024-05-07T15:21:17Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-tools_475.0.0.orig_aarch64.tar.gz + 69360358 2024-05-07T15:21:33Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-tools_475.0.0.orig_amd64.tar.gz 48998093 2022-02-01T15:41:41Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-validator_371.0.0.orig_amd64.tar.gz 48998093 2022-02-08T17:37:00Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-validator_372.0.0.orig_amd64.tar.gz 48998099 2022-02-15T16:32:50Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-terraform-validator_373.0.0.orig_amd64.tar.gz @@ -4871,6 +4925,7 @@ 57018848 2024-04-16T12:35:50Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-tests_472.0.0.orig.tar.gz 57020703 2024-04-23T14:46:01Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-tests_473.0.0.orig.tar.gz 57053542 2024-04-30T15:19:27Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-tests_474.0.0.orig.tar.gz + 57087419 2024-05-07T15:21:15Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli-tests_475.0.0.orig.tar.gz 158902954 2022-02-01T15:41:27Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli_371.0.0.orig.tar.gz 158947132 2022-02-08T17:35:33Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli_372.0.0.orig.tar.gz 159185567 2022-02-15T16:36:52Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli_373.0.0.orig.tar.gz @@ -5156,6 +5211,8 @@ 136831062 2024-04-23T14:46:18Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli_473.0.0.orig_amd64.tar.gz 58598401 2024-04-30T15:19:37Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli_474.0.0.orig_aarch64.tar.gz 136866782 2024-04-30T15:19:51Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli_474.0.0.orig_amd64.tar.gz + 58632274 2024-05-07T15:20:38Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli_475.0.0.orig_aarch64.tar.gz + 136907506 2024-05-07T15:20:22Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-cli_475.0.0.orig_amd64.tar.gz 9131189 2020-03-24T15:26:55Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-anthos-auth_286.0.0.orig_amd64.tar.gz 9131213 2020-04-01T14:31:13Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-anthos-auth_287.0.0.orig_amd64.tar.gz 9131217 2020-04-07T15:44:40Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-anthos-auth_288.0.0.orig_amd64.tar.gz @@ -7868,6 +7925,7 @@ 78201953 2024-04-16T12:35:35Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-bundled-python3-unix_472.0.0.orig_amd64.tar.gz 78201929 2024-04-23T14:41:37Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-bundled-python3-unix_473.0.0.orig_amd64.tar.gz 78201951 2024-04-30T15:19:42Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-bundled-python3-unix_474.0.0.orig_amd64.tar.gz + 78201929 2024-05-07T15:20:46Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-bundled-python3-unix_475.0.0.orig_amd64.tar.gz 4290542 2017-07-14T13:03:41Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-cbt_162.0.0.orig_amd64.tar.gz 4033104 2017-07-14T13:03:12Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-cbt_162.0.0.orig_i386.tar.gz 4290581 2017-07-14T13:03:39Z gs://cloud-sdk-release/for_packagers/linux/google-cloud-sdk-cbt_162.0.1.orig_amd64.tar.gz @@ -11795,4 +11853,6 @@ 75842811 2024-04-23T14:44:02Z gs://cloud-sdk-release/for_packagers/linux/kubectl_473.0.0.orig_amd64.tar.gz 86902058 2024-04-30T15:20:12Z gs://cloud-sdk-release/for_packagers/linux/kubectl_474.0.0.orig_aarch64.tar.gz 91832587 2024-04-30T15:19:13Z gs://cloud-sdk-release/for_packagers/linux/kubectl_474.0.0.orig_amd64.tar.gz -TOTAL: 11797 objects, 328679423680 bytes (306.11 GiB) + 86902058 2024-05-07T15:20:44Z gs://cloud-sdk-release/for_packagers/linux/kubectl_475.0.0.orig_aarch64.tar.gz + 91832587 2024-05-07T15:20:54Z gs://cloud-sdk-release/for_packagers/linux/kubectl_475.0.0.orig_amd64.tar.gz +TOTAL: 11857 objects, 330485450656 bytes (307.79 GiB)