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,28 @@
# -*- 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.
"""The gcloud colab runtimes command group."""
from googlecloudsdk.calliope import base
@base.DefaultUniverseOnly
@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA)
class Runtimes(base.Group):
# pylint: disable=g-doc - this is required for help text.
"""Manage Colab Enterprise runtimes.
For more information about runtimes, see
https://cloud.google.com/colab/docs/runtimes#runtimes
"""

View File

@@ -0,0 +1,92 @@
# -*- 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.
"""Assign command for Colab Enterprise Runtimes."""
from googlecloudsdk.api_lib.ai import operations
from googlecloudsdk.api_lib.colab_enterprise import runtimes as runtimes_util
from googlecloudsdk.api_lib.colab_enterprise import util
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.ai import endpoint_util
from googlecloudsdk.command_lib.colab_enterprise import flags
_DETAILED_HELP = {
'DESCRIPTION': """
Assign a notebook runtime to run code from your notebook (IPYNB file).
""",
'EXAMPLES': """
To create a runtime in region 'us-central1' with the display name 'my-runtime' and template with id 'my-template', run:
$ {command} --region=us-central1 --display-name=my-runtime --runtime-template=my-template
To create a runtime for user 'USER@DOMAIN.COM', run:
$ {command} --runtime-user=USER@DOMAIN.COM --region=us-central1 --display-name=my-runtime --runtime-template=my-template
""",
}
@base.Deprecate(
is_removed=True,
warning=(
'This command is deprecated. '
'Please use `gcloud beta colab runtimes create` instead.'
),
error=(
'This command has been removed. '
'Please use `gcloud beta colab runtimes create` instead.'
),
)
@base.DefaultUniverseOnly
@base.ReleaseTracks(base.ReleaseTrack.BETA)
class Create(base.CreateCommand):
"""Assign a notebook runtime."""
@staticmethod
def Args(parser):
"""Register flags for this command."""
flags.AddCreateRuntimeFlags(parser)
def Run(self, args):
"""This is what gets called when the user runs this command."""
release_track = self.ReleaseTrack()
messages = util.GetMessages(self.ReleaseTrack())
region_ref = args.CONCEPTS.region.Parse()
region = region_ref.AsDict()['locationsId']
# Override to regionalize domain as used by the AIPlatform API.
with endpoint_util.AiplatformEndpointOverrides(
version='BETA', region=region
):
api_client = util.GetClient(release_track)
runtimes_service = api_client.projects_locations_notebookRuntimes
operation = runtimes_service.Assign(
runtimes_util.CreateRuntimeAssignRequestMessage(args, messages)
)
return util.WaitForOpMaybe(
operations_client=operations.OperationsClient(client=api_client),
op=operation,
op_ref=runtimes_util.ParseRuntimeOperation(operation.name),
asynchronous=util.GetAsyncConfig(args),
kind='runtime',
log_method='create',
message=(
'Assigning a runtime to'
f' {runtimes_util.GetRuntimeUserFromArgsOrProperties(args)}...'
),
)
Create.detailed_help = _DETAILED_HELP

View File

@@ -0,0 +1,81 @@
# -*- 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.
"""Create command for Colab Enterprise Runtimes."""
from googlecloudsdk.api_lib.ai import operations
from googlecloudsdk.api_lib.colab_enterprise import runtimes as runtimes_util
from googlecloudsdk.api_lib.colab_enterprise import util
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.ai import endpoint_util
from googlecloudsdk.command_lib.colab_enterprise import flags
_DETAILED_HELP = {
'DESCRIPTION': """
Create a notebook runtime that can be used to run code from your notebook (IPYNB file).
""",
'EXAMPLES': """
To create a runtime in region 'us-central1' with the display name 'my-runtime' and template with id 'my-template', run:
$ {command} --region=us-central1 --display-name=my-runtime --runtime-template=my-template
To create a runtime for user 'USER@DOMAIN.COM', run:
$ {command} --runtime-user=USER@DOMAIN.COM --region=us-central1 --display-name=my-runtime --runtime-template=my-template
""",
}
@base.DefaultUniverseOnly
@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA)
class Create(base.CreateCommand):
"""Create a notebook runtime."""
@staticmethod
def Args(parser):
"""Register flags for this command."""
flags.AddCreateRuntimeFlags(parser)
def Run(self, args):
"""This is what gets called when the user runs this command."""
release_track = self.ReleaseTrack()
messages = util.GetMessages(self.ReleaseTrack())
region_ref = args.CONCEPTS.region.Parse()
region = region_ref.AsDict()['locationsId']
# Override to regionalize domain as used by the AIPlatform API.
with endpoint_util.AiplatformEndpointOverrides(
version='BETA', region=region
):
api_client = util.GetClient(release_track)
runtimes_service = api_client.projects_locations_notebookRuntimes
operation = runtimes_service.Assign(
runtimes_util.CreateRuntimeAssignRequestMessage(args, messages)
)
return util.WaitForOpMaybe(
operations_client=operations.OperationsClient(client=api_client),
op=operation,
op_ref=runtimes_util.ParseRuntimeOperation(operation.name),
asynchronous=util.GetAsyncConfig(args),
kind='runtime',
log_method='create',
message=(
'Creating a runtime for'
f' {runtimes_util.GetRuntimeUserFromArgsOrProperties(args)}...'
),
)
Create.detailed_help = _DETAILED_HELP

View File

@@ -0,0 +1,79 @@
# -*- 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.
"""Delete command for Colab Enterprise Runtimes."""
from googlecloudsdk.api_lib.ai import operations
from googlecloudsdk.api_lib.colab_enterprise import runtimes as runtimes_util
from googlecloudsdk.api_lib.colab_enterprise import util
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.ai import endpoint_util
from googlecloudsdk.command_lib.colab_enterprise import flags
_DETAILED_HELP = {
'DESCRIPTION': """
Delete a Colab Enterprise notebook runtime.
""",
'EXAMPLES': """
To delete a runtime with id 'my-runtime' in region 'us-central1', run:
$ {command} my-runtime --region=us-central1
""",
}
@base.DefaultUniverseOnly
@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA)
class Delete(base.DeleteCommand):
"""Delete a runtime."""
@staticmethod
def Args(parser):
"""Register flags for this command."""
flags.AddDeleteRuntimeFlags(parser)
def Run(self, args):
"""This is what gets called when the user runs this command."""
release_track = self.ReleaseTrack()
messages = util.GetMessages(self.ReleaseTrack())
runtime_ref = args.CONCEPTS.runtime.Parse()
region = runtime_ref.AsDict()['locationsId']
# Override to regionalize domain as used by the AIPlatform API.
with endpoint_util.AiplatformEndpointOverrides(
version='BETA', region=region
):
api_client = util.GetClient(release_track)
runtime_service = (
api_client.projects_locations_notebookRuntimes
)
operation = runtime_service.Delete(
runtimes_util.CreateRuntimeDeleteRequestMessage(args, messages)
)
return util.WaitForOpMaybe(
operations_client=operations.OperationsClient(client=api_client),
op=operation,
op_ref=runtimes_util.ParseRuntimeOperation(
operation.name
),
log_method='delete',
kind='runtime',
asynchronous=util.GetAsyncConfig(args),
message='Waiting for runtime to be deleted...',
resource=args.CONCEPTS.runtime.Parse().RelativeName(),
)
Delete.detailed_help = _DETAILED_HELP

View File

@@ -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.
"""Describe command for Colab Enterprise Runtimes."""
from googlecloudsdk.api_lib.colab_enterprise import runtimes as runtimes_util
from googlecloudsdk.api_lib.colab_enterprise import util
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.ai import endpoint_util
from googlecloudsdk.command_lib.colab_enterprise import flags
_DETAILED_HELP = {
'DESCRIPTION': """
Describe a Colab Enterprise notebook runtime.
""",
'EXAMPLES': """
To describe a runtime with id 'my-runtime' in region 'us-central1', run:
$ {command} my-runtime --region=us-central1
""",
}
@base.DefaultUniverseOnly
@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA)
class Describe(base.DescribeCommand):
"""Describe a runtime."""
@staticmethod
def Args(parser):
"""Register flags for this command."""
flags.AddDescribeRuntimeFlags(parser)
def Run(self, args):
"""This is what gets called when the user runs this command."""
release_track = self.ReleaseTrack()
messages = util.GetMessages(self.ReleaseTrack())
runtime_ref = args.CONCEPTS.runtime.Parse()
region = runtime_ref.AsDict()['locationsId']
# Override to regionalize domain as used by the AIPlatform API.
with endpoint_util.AiplatformEndpointOverrides(
version='BETA', region=region
):
api_client = util.GetClient(release_track)
runtimes_service = (
api_client.projects_locations_notebookRuntimes
)
return runtimes_service.Get(
runtimes_util.CreateRuntimeGetRequestMessage(
args, messages
)
)
Describe.detailed_help = _DETAILED_HELP

View File

@@ -0,0 +1,80 @@
# -*- 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.
"""List command for Colab Enterprise Runtimes."""
from apitools.base.py import list_pager
from googlecloudsdk.api_lib.colab_enterprise import runtimes as runtimes_util
from googlecloudsdk.api_lib.colab_enterprise import util
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.ai import endpoint_util
from googlecloudsdk.command_lib.colab_enterprise import flags
_DETAILED_HELP = {
'DESCRIPTION': """
List your project's Colab Enterprise notebook runtimes in a given region.
""",
'EXAMPLES': """
To list your runtimes in region 'us-central1', run:
$ {command} --region=us-central1
""",
}
@base.DefaultUniverseOnly
@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA)
class List(base.ListCommand):
"""List your project's runtimes."""
@staticmethod
def Args(parser):
"""Register flags for this command."""
flags.AddListRuntimeFlags(parser)
parser.display_info.AddFormat("""
table(name.segment(-1):label=ID,
displayName,
runtimeUser,
notebookRuntimeTemplateRef.notebookRuntimeTemplate.segment(-1):label=RUNTIME_TEMPLATE,
name.segment(-3):label=REGION)
""")
def Run(self, args):
"""This is what gets called when the user runs this command."""
release_track = self.ReleaseTrack()
messages = util.GetMessages(self.ReleaseTrack())
region_ref = args.CONCEPTS.region.Parse()
region = region_ref.AsDict()['locationsId']
# Override to regionalize domain as used by the AIPlatform API.
with endpoint_util.AiplatformEndpointOverrides(
version='BETA', region=region
):
api_client = util.GetClient(release_track)
runtimes_service = (
api_client.projects_locations_notebookRuntimes
)
return list_pager.YieldFromList(
service=runtimes_service,
request=runtimes_util.CreateRuntimeListRequestMessage(
args, messages
),
field='notebookRuntimes',
limit=args.limit,
batch_size_attribute='pageSize',
batch_size=args.page_size,
)
List.detailed_help = _DETAILED_HELP

View File

@@ -0,0 +1,79 @@
# -*- 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.
"""Start command for Colab Enterprise Runtimes."""
from googlecloudsdk.api_lib.ai import operations
from googlecloudsdk.api_lib.colab_enterprise import runtimes as runtimes_util
from googlecloudsdk.api_lib.colab_enterprise import util
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.ai import endpoint_util
from googlecloudsdk.command_lib.colab_enterprise import flags
_DETAILED_HELP = {
'DESCRIPTION': """
Start a stopped Colab Enterprise notebook runtime.
""",
'EXAMPLES': """
To start a runtime with id 'my-runtime' in region 'us-central1', run:
$ {command} my-runtime --region=us-central1
""",
}
@base.DefaultUniverseOnly
@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA)
class Start(base.UpdateCommand):
"""Start a stopped runtime."""
@staticmethod
def Args(parser):
"""Register flags for this command."""
flags.AddStartRuntimeFlags(parser)
def Run(self, args):
"""This is what gets called when the user runs this command."""
release_track = self.ReleaseTrack()
messages = util.GetMessages(self.ReleaseTrack())
runtime_ref = args.CONCEPTS.runtime.Parse()
region = runtime_ref.AsDict()['locationsId']
# Override to regionalize domain as used by the AIPlatform API.
with endpoint_util.AiplatformEndpointOverrides(
version='BETA', region=region
):
api_client = util.GetClient(release_track)
runtime_service = (
api_client.projects_locations_notebookRuntimes
)
operation = runtime_service.Start(
runtimes_util.CreateRuntimeStartRequestMessage(args, messages)
)
return util.WaitForOpMaybe(
operations_client=operations.OperationsClient(client=api_client),
op=operation,
op_ref=runtimes_util.ParseRuntimeOperation(
operation.name
),
log_method='update',
kind='runtime',
asynchronous=util.GetAsyncConfig(args),
message='Starting runtime...',
resource=args.CONCEPTS.runtime.Parse().RelativeName(),
)
Start.detailed_help = _DETAILED_HELP

View File

@@ -0,0 +1,79 @@
# -*- 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.
"""Stop command for Colab Enterprise Runtimes."""
from googlecloudsdk.api_lib.ai import operations
from googlecloudsdk.api_lib.colab_enterprise import runtimes as runtimes_util
from googlecloudsdk.api_lib.colab_enterprise import util
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.ai import endpoint_util
from googlecloudsdk.command_lib.colab_enterprise import flags
_DETAILED_HELP = {
'DESCRIPTION': """
Stop a Colab Enterprise notebook runtime.
""",
'EXAMPLES': """
To stop a runtime with id `my-runtime` in region `us-central1`, run:
$ {command} my-runtime --region=us-central1
""",
}
@base.DefaultUniverseOnly
@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA)
class Stop(base.UpdateCommand):
"""Stop a runtime."""
@staticmethod
def Args(parser):
"""Register flags for this command."""
flags.AddStopRuntimeFlags(parser)
def Run(self, args):
"""This is what gets called when the user runs this command."""
release_track = self.ReleaseTrack()
messages = util.GetMessages(self.ReleaseTrack())
runtime_ref = args.CONCEPTS.runtime.Parse()
region = runtime_ref.AsDict()['locationsId']
# Override to regionalize domain as used by the AIPlatform API.
with endpoint_util.AiplatformEndpointOverrides(
version='BETA', region=region
):
api_client = util.GetClient(release_track)
runtime_service = (
api_client.projects_locations_notebookRuntimes
)
operation = runtime_service.Stop(
runtimes_util.CreateRuntimeStopRequestMessage(args, messages)
)
return util.WaitForOpMaybe(
operations_client=operations.OperationsClient(client=api_client),
op=operation,
op_ref=runtimes_util.ParseRuntimeOperation(
operation.name
),
log_method='update',
kind='runtime',
asynchronous=util.GetAsyncConfig(args),
message='Stopping runtime...',
resource=args.CONCEPTS.runtime.Parse().RelativeName(),
)
Stop.detailed_help = _DETAILED_HELP

View File

@@ -0,0 +1,79 @@
# -*- 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.
"""Upgrade command for Colab Enterprise Runtimes."""
from googlecloudsdk.api_lib.ai import operations
from googlecloudsdk.api_lib.colab_enterprise import runtimes as runtimes_util
from googlecloudsdk.api_lib.colab_enterprise import util
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.ai import endpoint_util
from googlecloudsdk.command_lib.colab_enterprise import flags
_DETAILED_HELP = {
'DESCRIPTION': """
Upgrade a Colab Enterprise notebook runtime.
""",
'EXAMPLES': """
To upgrade a runtime with id 'my-runtime' in region 'us-central1', run:
$ {command} my-runtime --region=us-central1
""",
}
@base.DefaultUniverseOnly
@base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.BETA)
class Upgrade(base.UpdateCommand):
"""Upgrade a runtime."""
@staticmethod
def Args(parser):
"""Register flags for this command."""
flags.AddUpgradeRuntimeFlags(parser)
def Run(self, args):
"""This is what gets called when the user runs this command."""
release_track = self.ReleaseTrack()
messages = util.GetMessages(self.ReleaseTrack())
runtime_ref = args.CONCEPTS.runtime.Parse()
region = runtime_ref.AsDict()['locationsId']
# Override to regionalize domain as used by the AIPlatform API.
with endpoint_util.AiplatformEndpointOverrides(
version='BETA', region=region
):
api_client = util.GetClient(release_track)
runtime_service = (
api_client.projects_locations_notebookRuntimes
)
operation = runtime_service.Upgrade(
runtimes_util.CreateRuntimeUpgradeRequestMessage(args, messages)
)
return util.WaitForOpMaybe(
operations_client=operations.OperationsClient(client=api_client),
op=operation,
op_ref=runtimes_util.ParseRuntimeOperation(
operation.name
),
log_method='update',
kind='runtime',
asynchronous=util.GetAsyncConfig(args),
message='Upgrading runtime...',
resource=args.CONCEPTS.runtime.Parse().RelativeName(),
)
Upgrade.detailed_help = _DETAILED_HELP