feat: Add new gcloud commands, API clients, and third-party libraries across various services.

This commit is contained in:
2026-01-01 20:26:35 +01:00
parent 5e23cbece0
commit a19e592eb7
25221 changed files with 8324611 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
# -*- coding: utf-8 -*- #
# Copyright 2025 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.
"""The command group for Disk Migrations."""
from googlecloudsdk.calliope import base
@base.ReleaseTracks(base.ReleaseTrack.ALPHA)
@base.DefaultUniverseOnly
class DiskMigrations(base.Group):
r"""Migrates disks to Compute Engine.
The gcloud alpha migration vms disk-migrations command lets you create and
manage disk migration resource. You must create a disk migration resource
before you can migrate your disk from any migration source to a Compute Engine
disk. The disk migration resource tracks the progress of the disk migration.
To use this command, you must enable VM Migration API in your project.
Note that this command only creates a disk migration resource. It does not
initiate the disk migration process. After creating the disk migration
resource, you must initiate the migration process using the run command.
The disk is migrated to a Google Cloud Project, designated by the Target Project resource.
To get a list of Target Projects, run the gcloud alpha migration vms target-projects list command.
For information on adding target projects, see https://cloud.google.com/migrate/virtual-machines/docs/5.0/how-to/target-project.
A project can support a maximum of 200 Disk/VM Migration active resources per project; 1000 ready disk migration resources, and 500 finished disk migration resources.
Hence we recommend that you delete a completed disk migrations to avoid reaching the disk migration resources limit.
Deletion of disk migration resource does not affect the migrated disk.
## Create Disk Migration
$ gcloud migration vms disk-migrations create DISK_MIGRATION_JOB_NAME \
--source=AWS_SOURCE_NAME \
--source-volume-id=AWS_VOLUME_ID \
--location=REGION \
--target-project=TARGET_PROJECT_RESOURCE_PATH
## Run Disk Migration
$ gcloud migration vms disk-migrations run DISK_MIGRATION_JOB_NAME \
--source=AWS_SOURCE_NAME \
--location=REGION \
## Delete Disk Migration resource
$ gcloud migration vms disk-migrations delete DISK_MIGRATION_JOB_NAME \
--location=REGION
"""

View File

@@ -0,0 +1,20 @@
- release_tracks: [ALPHA]
help_text:
brief: Cancel a disk migration resource process.
description: |
{command} cancels an ongoing disk migration resource process.
To use this command, you must enable VM Migration API in your project.
examples: |
To cancel an ongoing my-disk-migration resource process in us-central1 in the AWS source
my-aws-source in the default project, run:
$ {command} my-disk-migration --location=us-central1 --source=my-aws-source
request:
method: cancel
collection: vmmigration.projects.locations.sources.diskMigrationJobs
arguments:
resource:
help_text: The disk migration resource you want to cancel its ongoing process.
spec: !REF googlecloudsdk.command_lib.migration.vms.resources:diskMigration

View File

@@ -0,0 +1,61 @@
- release_tracks: [ALPHA]
help_text:
brief: Create a disk migration resource to migrate a disk to Compute Engine.
description: |
{command} lets you create disk migration resource. You must create a disk migration resource
before you can migrate your disk from any migration source to a Compute Engine disk. The disk
migration resource tracks the progress of the disk migration.
To use this command, you must enable VM Migration API in your project.
Note that this command only creates a disk migration resource. It does not initiate the disk
migration process. After creating the disk migration resource, you must initiate the
migration process using the run command.
examples: |
To create a disk migration resource to migrate a volume vol-12345 from an AWS source
my-aws-source to my-target-project in us-central1, create the my-disk-migration disk migration
resource in my-project in us-central1, run:
$ {command} my-disk-migration \
--project=my-project \
--location=us-central1 \
--source=my-aws-source \
--source-volume-id=vol-12345 \
--disk-id=gcp-disk1 \
--target-project=projects/my-project/locations/global/targetProjects/my-target-project
request:
collection: vmmigration.projects.locations.sources.diskMigrationJobs
modify_request_hooks:
- googlecloudsdk.command_lib.migration.vms.disk_migration.hooks:FixCreateDiskMigrationsRequest
arguments:
resource:
help_text: The disk migration resource you want to create. This would be the disk ID if --disk-id is not given.
spec: !REF googlecloudsdk.command_lib.migration.vms.resources:diskMigration
params:
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:source_volume_id
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:labels
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:target_project
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:kms_key
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:disk_id
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:zone
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:disk_type
choices:
- arg_value: compute-engine-disk-type-standard
enum_value: COMPUTE_ENGINE_DISK_TYPE_STANDARD
help_text: |-
Compute Engine Disk Type Standard.
- arg_value: compute-engine-disk-type-ssd
enum_value: COMPUTE_ENGINE_DISK_TYPE_SSD
help_text: |-
Compute Engine Disk Type SSD.
- arg_value: compute-engine-disk-type-balanced
enum_value: COMPUTE_ENGINE_DISK_TYPE_BALANCED
help_text: |-
Compute Engine Disk Type Balanced.
- arg_value: compute-engine-disk-type-hyperdisk-balanced
enum_value: COMPUTE_ENGINE_DISK_TYPE_HYPERDISK_BALANCED
help_text: |-
Compute Engine Disk Type hyperdisk-balanced.

View File

@@ -0,0 +1,22 @@
- release_tracks: [ALPHA]
help_text:
brief: Delete a disk migration resource.
description: |
{command} deletes a disk migration resource.
To use this command, you must enable VM Migration API in your project.
This command does not delete any disks on Google Compute Engine.
examples: |
To delete my-disk-migration resource in us-central1 in the AWS source my-aws-source in the
default project, run:
$ {command} my-image-import --location=us-central1 --source=my-aws-source
request:
collection: vmmigration.projects.locations.sources.diskMigrationJobs
arguments:
resource:
help_text: The disk migration resource you want to delete.
spec: !REF googlecloudsdk.command_lib.migration.vms.resources:diskMigration

View File

@@ -0,0 +1,21 @@
- release_tracks: [ALPHA]
help_text:
brief: Describe a disk migration resource.
description: |
{command} describes a disk migration resource.
The disk migration resource tracks the disk migration progress.
To use this command, you must enable VM Migration API in your project.
examples: |
To describe my-disk-migration resource in us-central1 in the AWS source my-aws-source in the
default project, run:
$ {command} my-disk-migration --location=us-central1 --source=my-aws-source
request:
collection: vmmigration.projects.locations.sources.diskMigrationJobs
arguments:
resource:
help_text: The disk migration resource you want to describe.
spec: !REF googlecloudsdk.command_lib.migration.vms.resources:diskMigration

View File

@@ -0,0 +1,32 @@
- release_tracks: [ALPHA]
help_text:
brief: Lists source environment volume inventory.
description: |
{command} prints a detailed list of the source environment volume inventory.
To use this command, you must enable VM Migration API in your project.
examples: |
To list the source environment volume resources in us-central1 in the AWS source my-aws-source in the
default project, run:
$ {command} my-aws-source --location=us-central1
request:
method: fetchStorageInventory
collection: vmmigration.projects.locations.sources
static_fields:
type: DISKS
response:
id_field: awsDiskDetails
arguments:
resource:
help_text: |
The source environment resource of the disk migration resources.
This is the parent resource of the disk migration resources.
spec: !REF googlecloudsdk.command_lib.migration.vms.resources:source
# is_primary_resource: true
output:
format: table(awsDiskDetails.volumeId, awsDiskDetails.sizeGib, awsDiskDetails.diskType, awsDiskDetails.tags)

View File

@@ -0,0 +1,28 @@
- release_tracks: [ALPHA]
help_text:
brief: List disk migration resources.
description: |
{command} prints a detailed list of disk migration resources.
To use this command, you must enable VM Migration API in your project.
examples: |
To list the disk migration resources in us-central1 in the AWS source my-aws-source in the
default project, run:
$ {command} --location=us-central1 --source=my-aws-source
request:
collection: vmmigration.projects.locations.sources.diskMigrationJobs
response:
id_field: name
arguments:
resource:
help_text: |
The source environment resource of the disk migration resources.
This is the parent resource of the disk migration resources.
spec: !REF googlecloudsdk.command_lib.migration.vms.resources:source
output:
format: table(name.basename(), state, awsSourceDiskDetails.volumeId, targetDetails.targetProject.basename(), targetDetails.targetDisk.zone, targetDetails.targetDisk.diskId, targetDetails.targetDisk.diskType, createTime)

View File

@@ -0,0 +1,19 @@
- release_tracks: [ALPHA]
help_text:
brief: Run a disk migration resource process.
description: |
{command} initiates a disk migration resource process.
To use this command, you must enable VM Migration API in your project.
examples: |
To run my-disk-migration resource process in us-central1 in the AWS source my-aws-source in the default project, run:
$ {command} my-disk-migration --location=us-central1 --source=my-aws-source
request:
method: run
collection: vmmigration.projects.locations.sources.diskMigrationJobs
arguments:
resource:
help_text: The disk migration resource you want to initiate its process.
spec: !REF googlecloudsdk.command_lib.migration.vms.resources:diskMigration

View File

@@ -0,0 +1,49 @@
- release_tracks: [ALPHA]
help_text:
brief: Update a disk migration resource target details.
description: |
{command} updates a disk migration resource.
To use this command, you must enable VM Migration API in your project.
examples: |
To update a disk migration resource my-disk-migration from AWS source
my-aws-source disk type to pd-ssd, run:
$ {command} my-disk-migration \
--project=my-project \
--location=us-central1 \
--source=my-aws-source \
--disk-type=COMPUTE_ENGINE_DISK_TYPE_SSD
request:
collection: vmmigration.projects.locations.sources.diskMigrationJobs
arguments:
resource:
help_text: The disk migration resource you want to udpate.
spec: !REF googlecloudsdk.command_lib.migration.vms.resources:diskMigration
params:
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:labels
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:target_project
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:kms_key
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:disk_id
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:zone
- _REF_: googlecloudsdk.command_lib.migration.vms.disk_migration.flags:disk_type
choices:
- arg_value: compute-engine-disk-type-standard
enum_value: COMPUTE_ENGINE_DISK_TYPE_STANDARD
help_text: |-
Compute Engine Disk Type Standard.
- arg_value: compute-engine-disk-type-ssd
enum_value: COMPUTE_ENGINE_DISK_TYPE_SSD
help_text: |-
Compute Engine Disk Type SSD.
- arg_value: compute-engine-disk-type-balanced
enum_value: COMPUTE_ENGINE_DISK_TYPE_BALANCED
help_text: |-
Compute Engine Disk Type Balanced.
- arg_value: compute-engine-disk-type-hyperdisk-balanced
enum_value: COMPUTE_ENGINE_DISK_TYPE_HYPERDISK_BALANCED
help_text: |-
Compute Engine Disk Type hyperdisk-balanced.