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,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.
"""The command group for Cloud Quotas Quota Info."""
from googlecloudsdk.calliope import base
# We could have multiple tracks here, e.g.
# @base.ReleaseTracks(base.ReleaseTrack.GA, base.ReleaseTrack.ALPHA)
@base.ReleaseTracks(base.ReleaseTrack.ALPHA)
@base.UniverseCompatible
class QuotaInfoAlpha(base.Group):
"""Manage Cloud Quotas QuotaInfo.
QuotaInfo is a read-only resource that provides metadata and quota value
information about a particular quota for a given project, folder or
organization. The QuotaInfo resource contains:
* Metadata such as name and dimension.
* Quota values for different quota dimensions.
Cloud Quotas obtains information from the quotas defined by Google Cloud
services and any fulfilled quota adjustments that you initiate.
Note: Because QuotaInfo is constructed by incorporating information from
different sources, a default quota configuration exists even if you have not
created a QuotaPreference resource. Until you express a preferred state
through quotaPreference.create or quotaPreference.update, QuotaInfo relies on
the default quota information available to determine what quota value to
enforce.
"""
@base.ReleaseTracks(base.ReleaseTrack.BETA)
@base.UniverseCompatible
class QuotaInfoBeta(base.Group):
"""Manage Cloud Quotas QuotaInfo.
QuotaInfo is a read-only resource that provides metadata and quota value
information about a particular quota for a given project, folder or
organization. The QuotaInfo resource contains:
* Metadata such as name and dimension.
* Quota values for different quota dimensions.
Cloud Quotas obtains information from the quotas defined by Google Cloud
services and any fulfilled quota adjustments that you initiate.
Note: Because QuotaInfo is constructed by incorporating information from
different sources, a default quota configuration exists even if you have not
created a QuotaPreference resource. Until you express a preferred state
through quotaPreference.create or quotaPreference.update, QuotaInfo relies on
the default quota information available to determine what quota value to
enforce.
"""

View File

@@ -0,0 +1,126 @@
# -*- 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.
"""QuotaInfo get command."""
from googlecloudsdk.api_lib.quotas import quota_info
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.quotas import flags
@base.ReleaseTracks(base.ReleaseTrack.ALPHA)
@base.UniverseCompatible
class DescribeAlpha(base.DescribeCommand):
"""Retrieve the QuotaInfo of a quota for a project, folder or organization.
## EXAMPLES
To get the details about quota `CpusPerProject` for service
`example.$$UNIVERSE_DOMAIN$$` and `projects/my-project`, run:
$ {command} CpusPerProject --service=example.$$UNIVERSE_DOMAIN$$
--project=my-project
To get the details about quota `CpusPerProject` for service
`example.$$UNIVERSE_DOMAIN$$` and `folders/123`, run:
$ {command} CpusPerProject --service=example.$$UNIVERSE_DOMAIN$$
--folder=123
"""
@staticmethod
def Args(parser):
"""Args is called by calliope to gather arguments for this command.
Args:
parser: An argparse parser that you can use to add arguments that go on
the command line after this command. Positional arguments are allowed.
"""
flags.QuotaId().AddToParser(parser)
flags.AddResourceFlags(parser, 'quota info to describe')
flags.Service().AddToParser(parser)
def Run(self, args):
"""Run command.
Args:
args: argparse.Namespace, The arguments that this command was invoked
with.
Returns:
The requested QuotaInfo for specified container and service.
"""
# This is because alpha gcloud points to GA version of the API.
return quota_info.GetQuotaInfo(
args.project,
args.folder,
args.organization,
args.service,
args.QUOTA_ID,
release_track=base.ReleaseTrack.GA,
)
@base.ReleaseTracks(base.ReleaseTrack.BETA)
@base.UniverseCompatible
class DescribeBeta(base.DescribeCommand):
"""Retrieve the QuotaInfo of a quota for a project, folder or organization.
## EXAMPLES
To get the details about quota `CpusPerProject` for service
`example.$$UNIVERSE_DOMAIN$$` and `projects/my-project`, run:
$ {command} CpusPerProject --service=example.$$UNIVERSE_DOMAIN$$
--project=my-project
To get the details about quota `CpusPerProject` for service
`example.$$UNIVERSE_DOMAIN$$` and `folders/123`, run:
$ {command} CpusPerProject --service=example.$$UNIVERSE_DOMAIN$$
--folder=123
"""
@staticmethod
def Args(parser):
"""Args is called by calliope to gather arguments for this command.
Args:
parser: An argparse parser that you can use to add arguments that go on
the command line after this command. Positional arguments are allowed.
"""
flags.QuotaId().AddToParser(parser)
flags.AddResourceFlags(parser, 'quota info to describe')
flags.Service().AddToParser(parser)
def Run(self, args):
"""Run command.
Args:
args: argparse.Namespace, The arguments that this command was invoked
with.
Returns:
The requested QuotaInfo for specified container and service.
"""
return quota_info.GetQuotaInfo(
args.project,
args.folder,
args.organization,
args.service,
args.QUOTA_ID,
release_track=base.ReleaseTrack.BETA,
)

View File

@@ -0,0 +1,110 @@
# -*- 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.
"""QuotaInfo list command."""
from googlecloudsdk.api_lib.quotas import quota_info
from googlecloudsdk.calliope import base
from googlecloudsdk.command_lib.quotas import flags
@base.ReleaseTracks(base.ReleaseTrack.ALPHA)
@base.UniverseCompatible
class ListAlpha(base.ListCommand):
"""List QuotaInfos of all quotas for a given project, folder or organization.
## EXAMPLES
To list all quota info for service `example.$$UNIVERSE_DOMAIN$$` and
`projects/12321`, run:
$ {command} --service=example.$$UNIVERSE_DOMAIN$$ --project=12321
$ {command} --service=example.$$UNIVERSE_DOMAIN$$ --project=my-project-id
To list first 100 quota info ordered alphabetically for service
`example.$$UNIVERSE_DOMAIN$$` and `folders/123`,
run:
$ {command} --service=example.$$UNIVERSE_DOMAIN$$ --folder=123
--page-size=100
"""
@staticmethod
def Args(parser):
"""Args is called by calliope to gather arguments for this command.
Args:
parser: An argparse parser that you can use to add arguments that go on
the command line after this command. Positional arguments are allowed.
"""
flags.AddResourceFlags(parser, 'quota info to list')
flags.Service().AddToParser(parser)
def Run(self, args):
"""Run command.
Args:
args: argparse.Namespace, The arguments that this command was invoked
with.
Returns:
List of QuotaInfo for specified container and service.
"""
# This is because alpha gcloud points to GA version of the API.
return quota_info.ListQuotaInfo(args, release_track=base.ReleaseTrack.GA)
@base.ReleaseTracks(base.ReleaseTrack.BETA)
@base.UniverseCompatible
class ListBeta(base.ListCommand):
"""List QuotaInfos of all quotas for a given project, folder or organization.
## EXAMPLES
To list all quota info for service `example.$$UNIVERSE_DOMAIN$$` and
`projects/12321`, run:
$ {command} --service=example.$$UNIVERSE_DOMAIN$$ --project=12321
$ {command} --service=example.$$UNIVERSE_DOMAIN$$m --project=my-project-id
To list first 100 quota info ordered alphabetically for service
`example.$$UNIVERSE_DOMAIN$$` and `folders/123`,
run:
$ {command} --service=example.$$UNIVERSE_DOMAIN$$ --folder=123
--page-size=100
"""
@staticmethod
def Args(parser):
"""Args is called by calliope to gather arguments for this command.
Args:
parser: An argparse parser that you can use to add arguments that go on
the command line after this command. Positional arguments are allowed.
"""
flags.AddResourceFlags(parser, 'quota info to list')
flags.Service().AddToParser(parser)
def Run(self, args):
"""Run command.
Args:
args: argparse.Namespace, The arguments that this command was invoked
with.
Returns:
List of QuotaInfo for specified container and service.
"""
return quota_info.ListQuotaInfo(args, release_track=base.ReleaseTrack.BETA)