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,33 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
"""Manage Instance resources."""
from googlecloudsdk.calliope import base
from surface.lustre.instances import _init_extensions as extensions
@base.ReleaseTracks(base.ReleaseTrack.ALPHA)
@base.Autogenerated
class InstancesAlpha(extensions.InstancesAlpha):
"""Manage Lustre instance resources."""
@base.ReleaseTracks(base.ReleaseTrack.GA)
@base.Autogenerated
class InstancesGa(extensions.InstancesGa):
"""Manage Instance resources."""

View File

@@ -0,0 +1,34 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
"""File to add optional custom code to extend __init__.py."""
from googlecloudsdk.calliope import base
@base.DefaultUniverseOnly
class InstancesAlpha(base.Group):
"""Optional no-auto-generated code for ALPHA."""
@base.DefaultUniverseOnly
class InstancesBeta(base.Group):
"""Optional no-auto-generated code for BETA."""
@base.DefaultUniverseOnly
class InstancesGa(base.Group):
"""Optional no-auto-generated code for GA."""

View File

@@ -0,0 +1,395 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- ALPHA
auto_generated: true
help_text:
brief: Creates a Managed Lustre instance
description: |
Creates a Managed Lustre instance.
examples: |-
To create an instance `my-instance` in location `us-central1-a` with 18000 Gib capacity run:
$ {command} my-instance --capacity-gib=18000 --location=us-central1-a --network=projects/my-project/global/networks/default --filesystem=lustrefs --per-unit-storage-throughput=1000
arguments:
params:
- group:
mutex: true
hidden: true
help_text: |-
Arguments for the audit log level.
params:
- arg_name: audit-log-level
api_field: instance.auditLogLevel
required: false
hidden: true
help_text: |-
The file system audit log level for the instance.
choices:
- arg_value: disabled
enum_value: DISABLED
help_text: |-
File system audit logs are explicitly disabled.
- arg_value: basic
enum_value: BASIC
help_text: |-
File system basic audit logs are enabled.
- help_text: |-
Identifier.
The name of the instance.
is_positional: true
is_primary_resource: true
request_id_field: instanceId
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_locations_instances
required: true
- arg_name: filesystem
api_field: instance.filesystem
required: true
repeated: false
help_text: |-
The filesystem name for this instance. This name is used by client-side
tools, including when mounting the instance. Must be eight characters or
less and can only contain letters and numbers.
- arg_name: capacity-gib
api_field: instance.capacityGib
required: true
repeated: false
type: long
help_text: |-
The storage capacity of the instance in gibibytes (GiB). Allowed values
are from `18000` to `7632000`, depending on the `perUnitStorageThroughput`.
See [Performance tiers and maximum storage
capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers)
for specific minimums, maximums, and step sizes for each performance tier.
- arg_name: network
help_text: |-
The full name of the VPC network to which the instance is connected.
Must be in the format
`projects/{project_id}/global/networks/{network_name}`.
is_positional: false
is_primary_resource: false
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_none_networks
resource_method_params:
instance.network: '{__relative_name__}'
required: true
- arg_name: description
api_field: instance.description
required: false
repeated: false
help_text: |-
A user-readable description of the instance.
- arg_name: labels
api_field: instance.labels
required: false
repeated: true
help_text: |-
Labels as key value pairs.
spec:
- api_field: key
- api_field: value
- arg_name: per-unit-storage-throughput
api_field: instance.perUnitStorageThroughput
required: true
repeated: false
type: long
help_text: |-
The throughput of the instance in MBps per TiB. Valid values are 125, 250,
500, 1000.
See [Performance tiers and maximum storage
capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers)
for more information.
- arg_name: gke-support-enabled
api_field: instance.gkeSupportEnabled
action: store_true
required: false
type: bool
help_text: |-
Indicates whether you want to enable support for GKE clients. By default,
GKE clients are not supported.
Deprecated. No longer required for GKE instance creation.
default: null
- arg_name: kms-key
api_field: instance.kmsKey
required: false
repeated: false
help_text: |-
The Cloud KMS key name to use for data encryption.
If not set, the instance will use Google-managed encryption keys.
If set, the instance will use customer-managed encryption keys.
The key must be in the same region as the instance.
The key format is:
projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}
- arg_name: placement-policy
api_field: instance.placementPolicy
required: false
repeated: false
help_text: |-
The placement policy name for the instance in the format of
projects/{project}/locations/{location}/resourcePolicies/{resource_policy}
- group:
api_field: instance.accessRulesOptions
required: false
help_text: |-
IP-based access rules for the Managed Lustre instance. These options
define the root user squash configuration.
params:
- arg_name: access-rules
api_field: instance.accessRulesOptions.accessRules
required: false
repeated: true
help_text: |-
The access rules for the instance.
spec:
- api_field: name
help_text: |-
The name of the access rule policy group.
Must be 16 characters or less and include only alphanumeric characters
or '_'.
- api_field: ipAddressRanges
help_text: |-
The IP address ranges to which to apply this access rule. Accepts
non-overlapping CIDR ranges (e.g., `192.168.1.0/24`) and IP addresses
(e.g., `192.168.1.0`).
- api_field: accessMode
help_text: |-
The access mode for the access rule nodemap.
Default is [READ_WRITE][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.AccessMode.READ_WRITE].
- api_field: squashMode
help_text: |-
Squash mode for the access rule.
- api_field: squashUid
help_text: |-
Squash UID for the access rule. If the squash mode for this rule is
[ROOT_SQUASH][google.cloud.lustre.v1alpha.AccessRulesOptions.SquashMode.ROOT_SQUASH], root users matching the
[ip_address_ranges][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.ip_address_ranges] are squashed to this
UID. Defaults to 0 (no root squash).
- api_field: squashGid
help_text: |-
Squash GID for the access rule. If the squash mode for this rule is
[ROOT_SQUASH][google.cloud.lustre.v1alpha.AccessRulesOptions.SquashMode.ROOT_SQUASH], root users matching the
[ip_address_ranges][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.ip_address_ranges] are squashed to this
GID. Defaults to 0 (no root squash).
- api_field: mountableSubdirectories
help_text: |-
The list of non-root directories that can be mounted from
clients in this NID range subset. Currently, there can be only a single
directory at most. If no directory is mentioned, then the root directory
will be accessible.
- arg_name: default-squash-mode
api_field: instance.accessRulesOptions.defaultSquashMode
required: true
help_text: |-
The squash mode for the default access rule.
choices:
- arg_value: no-squash
enum_value: NO_SQUASH
help_text: |-
Squash is disabled.
If set inside an [AccessRule][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule], root users matching the
[ip_ranges][AccessRule.ip_ranges] are not squashed.
If set as the [default_squash_mode][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_mode], root squash is
disabled for this instance.
If the default squash mode is `NO_SQUASH`, do not set the
[default_squash_uid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_uid] or
[default_squash_gid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_gid], or an `invalid argument` error
is returned.
- arg_value: root-squash
enum_value: ROOT_SQUASH
help_text: |-
Root user squash is enabled.
Not supported inside an [AccessRule][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule].
If set as the [default_squash_mode][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_mode],
root users not matching any of the [access_rules][google.cloud.lustre.v1alpha.AccessRulesOptions.access_rules] are
squashed to the [default_squash_uid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_uid] and
[default_squash_gid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_gid].
- arg_value: all-users-squash
enum_value: ALL_USERS_SQUASH
help_text: |-
All users squashed to the [squash_uid][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.squash_uid] and
[squash_gid][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.squash_gid] for the access rule.
If this is for the [default_squash_mode][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_mode], then the
[default_squash_uid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_uid] and
[default_squash_gid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_gid] will be squashed.
hidden: true
- arg_name: default-squash-uid
api_field: instance.accessRulesOptions.defaultSquashUid
required: false
repeated: false
type: int
help_text: |-
The user squash UID for the default access rule.
This user squash UID applies to all root users connecting from clients
that are not matched by any of the access rules. If not set, the default
is 0 (no UID squash).
- arg_name: default-squash-gid
api_field: instance.accessRulesOptions.defaultSquashGid
required: false
repeated: false
type: int
help_text: |-
The user squash GID for the default access rule.
This user squash GID applies to all root users connecting from clients
that are not matched by any of the access rules. If not set, the default
is 0 (no GID squash).
- arg_name: default-mountable-subdirectories
api_field: instance.accessRulesOptions.defaultMountableSubdirectories
required: false
repeated: true
hidden: true
help_text: |-
The list of non-root directories that can be mounted from
clients in the default access rule. Currently, there can be only a single
directory at most. If no directory is mentioned, then the root directory
will be accessible.
- group:
api_field: instance.maintenancePolicy
required: false
hidden: true
help_text: |-
The maintenance policy for the instance to determine when to allow or deny
updates.
params:
- arg_name: maintenance-policy-windows
api_field: instance.maintenancePolicy.maintenanceWindows
required: true
repeated: true
help_text: |-
The maintenance window for the instance.
spec:
- api_field: dayOfWeek
help_text: |-
Day of the week for the maintenance window.
- api_field: startTime
help_text: |-
Start time of the maintenance window in UTC time zone.
spec:
- api_field: hours
help_text: |-
Hours of a day in 24 hour format. Must be greater than or equal to 0 and
typically must be less than or equal to 23. An API may choose to allow the
value "24:00:00" for scenarios like business closing time.
- api_field: minutes
help_text: |-
Minutes of an hour. Must be greater than or equal to 0 and less than or
equal to 59.
- api_field: seconds
help_text: |-
Seconds of a minute. Must be greater than or equal to 0 and typically must
be less than or equal to 59. An API may allow the value 60 if it allows
leap-seconds.
- api_field: nanos
help_text: |-
Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
and less than or equal to 999,999,999.
- arg_name: maintenance-policy-deny-periods
api_field: instance.maintenancePolicy.denyPeriods
required: false
repeated: true
help_text: |-
The deny periods for the instance.
Currently limited to 4.
spec:
- api_field: startDate
help_text: |-
Start date of the deny period in UTC time zone.
spec:
- api_field: year
help_text: |-
Year of the date. Must be from 1 to 9999, or 0 to specify a date without
a year.
- api_field: month
help_text: |-
Month of a year. Must be from 1 to 12, or 0 to specify a year without a
month and day.
- api_field: day
help_text: |-
Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
to specify a year by itself or a year and month where the day isn't
significant.
- api_field: endDate
help_text: |-
End date of the deny period in UTC time zone.
spec:
- api_field: year
help_text: |-
Year of the date. Must be from 1 to 9999, or 0 to specify a date without
a year.
- api_field: month
help_text: |-
Month of a year. Must be from 1 to 12, or 0 to specify a year without a
month and day.
- api_field: day
help_text: |-
Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
to specify a year by itself or a year and month where the day isn't
significant.
- api_field: time
help_text: |-
Time in UTC when the deny period starts on start_date and ends on
end_date. This can be:
* Full time OR
* All zeros for 00:00:00 UTC
spec:
- api_field: hours
help_text: |-
Hours of a day in 24 hour format. Must be greater than or equal to 0 and
typically must be less than or equal to 23. An API may choose to allow the
value "24:00:00" for scenarios like business closing time.
- api_field: minutes
help_text: |-
Minutes of an hour. Must be greater than or equal to 0 and less than or
equal to 59.
- api_field: seconds
help_text: |-
Seconds of a minute. Must be greater than or equal to 0 and typically must
be less than or equal to 59. An API may allow the value 60 if it allows
leap-seconds.
- api_field: nanos
help_text: |-
Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
and less than or equal to 999,999,999.
- 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 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).
request:
api_version: v1alpha
collection:
- lustre.projects.locations.instances
async:
collection:
- lustre.projects.locations.operations

View File

@@ -0,0 +1,226 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- GA
auto_generated: true
help_text:
brief: Creates a Managed Lustre instance
description: |
Creates a Managed Lustre instance.
examples: |-
To create an instance `my-instance` in location `us-central1-a` with 18000 Gib capacity run:
$ {command} my-instance --capacity-gib=18000 --location=us-central1-a --network=projects/my-project/global/networks/default --filesystem=lustrefs --per-unit-storage-throughput=1000
arguments:
params:
- help_text: |-
Identifier.
The name of the instance.
is_positional: true
is_primary_resource: true
request_id_field: instanceId
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_locations_instances
required: true
- arg_name: filesystem
api_field: instance.filesystem
required: true
repeated: false
help_text: |-
The filesystem name for this instance. This name is used by client-side
tools, including when mounting the instance. Must be eight characters or
less and can only contain letters and numbers.
- arg_name: capacity-gib
api_field: instance.capacityGib
required: true
repeated: false
type: long
help_text: |-
The storage capacity of the instance in gibibytes (GiB). Allowed values
are from `18000` to `7632000`, depending on the `perUnitStorageThroughput`.
See [Performance tiers and maximum storage
capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers)
for specific minimums, maximums, and step sizes for each performance tier.
- arg_name: network
help_text: |-
The full name of the VPC network to which the instance is connected.
Must be in the format
`projects/{project_id}/global/networks/{network_name}`.
is_positional: false
is_primary_resource: false
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_none_networks
resource_method_params:
instance.network: '{__relative_name__}'
required: true
- arg_name: description
api_field: instance.description
required: false
repeated: false
help_text: |-
A user-readable description of the instance.
- arg_name: labels
api_field: instance.labels
required: false
repeated: true
help_text: |-
Labels as key value pairs.
spec:
- api_field: key
- api_field: value
- arg_name: per-unit-storage-throughput
api_field: instance.perUnitStorageThroughput
required: true
repeated: false
type: long
help_text: |-
The throughput of the instance in MBps per TiB. Valid values are 125, 250,
500, 1000.
See [Performance tiers and maximum storage
capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers)
for more information.
- arg_name: gke-support-enabled
api_field: instance.gkeSupportEnabled
action: store_true
required: false
type: bool
help_text: |-
Indicates whether you want to enable support for GKE clients. By default,
GKE clients are not supported.
Deprecated. No longer required for GKE instance creation.
default: null
- arg_name: kms-key
api_field: instance.kmsKey
required: false
repeated: false
help_text: |-
The Cloud KMS key name to use for data encryption.
If not set, the instance will use Google-managed encryption keys.
If set, the instance will use customer-managed encryption keys.
The key must be in the same region as the instance.
The key format is:
projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key}
- arg_name: placement-policy
api_field: instance.placementPolicy
required: false
repeated: false
help_text: |-
The placement policy name for the instance in the format of
projects/{project}/locations/{location}/resourcePolicies/{resource_policy}
- group:
api_field: instance.accessRulesOptions
required: false
help_text: |-
IP-based access rules for the Managed Lustre instance. These options
define the root user squash configuration.
params:
- arg_name: access-rules
api_field: instance.accessRulesOptions.accessRules
required: false
repeated: true
help_text: |-
The access rules for the instance.
spec:
- api_field: name
help_text: |-
The name of the access rule policy group.
Must be 16 characters or less and include only alphanumeric characters
or '_'.
- api_field: ipAddressRanges
help_text: |-
The IP address ranges to which to apply this access rule. Accepts
non-overlapping CIDR ranges (e.g., `192.168.1.0/24`) and IP addresses
(e.g., `192.168.1.0`).
- api_field: squashMode
help_text: |-
Squash mode for the access rule.
- arg_name: default-squash-mode
api_field: instance.accessRulesOptions.defaultSquashMode
required: true
help_text: |-
The squash mode for the default access rule.
choices:
- arg_value: no-squash
enum_value: NO_SQUASH
help_text: |-
Squash is disabled.
If set inside an [AccessRule][google.cloud.lustre.v1.AccessRulesOptions.AccessRule], root users matching the
[ip_ranges][AccessRule.ip_ranges] are not squashed.
If set as the [default_squash_mode][google.cloud.lustre.v1.AccessRulesOptions.default_squash_mode], root squash is
disabled for this instance.
If the default squash mode is `NO_SQUASH`, do not set the
[default_squash_uid][google.cloud.lustre.v1.AccessRulesOptions.default_squash_uid] or
[default_squash_gid][google.cloud.lustre.v1.AccessRulesOptions.default_squash_gid], or an `invalid argument` error
is returned.
- arg_value: root-squash
enum_value: ROOT_SQUASH
help_text: |-
Root user squash is enabled.
Not supported inside an [AccessRule][google.cloud.lustre.v1.AccessRulesOptions.AccessRule].
If set as the [default_squash_mode][google.cloud.lustre.v1.AccessRulesOptions.default_squash_mode],
root users not matching any of the [access_rules][google.cloud.lustre.v1.AccessRulesOptions.access_rules] are
squashed to the [default_squash_uid][google.cloud.lustre.v1.AccessRulesOptions.default_squash_uid] and
[default_squash_gid][google.cloud.lustre.v1.AccessRulesOptions.default_squash_gid].
- arg_name: default-squash-uid
api_field: instance.accessRulesOptions.defaultSquashUid
required: false
repeated: false
type: int
help_text: |-
The user squash UID for the default access rule.
This user squash UID applies to all root users connecting from clients
that are not matched by any of the access rules. If not set, the default
is 0 (no UID squash).
- arg_name: default-squash-gid
api_field: instance.accessRulesOptions.defaultSquashGid
required: false
repeated: false
type: int
help_text: |-
The user squash GID for the default access rule.
This user squash GID applies to all root users connecting from clients
that are not matched by any of the access rules. If not set, the default
is 0 (no GID squash).
- 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 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).
request:
api_version: v1
collection:
- lustre.projects.locations.instances
async:
collection:
- lustre.projects.locations.operations

View File

@@ -0,0 +1,62 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- ALPHA
auto_generated: true
help_text:
brief: deletes a Managed Lustre instance
description: |
deletes a Managed Lustre instance.
examples: |-
to delete an instance `my-instance` run:
$ {command} my-instance
arguments:
params:
- help_text: |-
The resource name of the instance to delete, in the format
`projects/{projectId}/locations/{location}/instances/{instanceId}`.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_locations_instances
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:
- lustre.projects.locations.instances
async:
collection:
- lustre.projects.locations.operations

View File

@@ -0,0 +1,62 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- GA
auto_generated: true
help_text:
brief: Deletes a Managed Lustre instance
description: |
Deletes a Managed Lustre instance.
examples: |-
to delete an instance `my-instance` run:
$ {command} my-instance
arguments:
params:
- help_text: |-
The resource name of the instance to delete, in the format
`projects/{projectId}/locations/{location}/instances/{instanceId}`.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_locations_instances
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: v1
collection:
- lustre.projects.locations.instances
async:
collection:
- lustre.projects.locations.operations

View File

@@ -0,0 +1,41 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- ALPHA
auto_generated: true
help_text:
brief: Gets details of a single Managed Lustre instance
description: |
Gets details of a single Managed Lustre instance.
examples: |-
To get the details of a single instance `my-instance` in location `us-central1-a` run:
$ {command} my-instance --location=us-central1-a
arguments:
params:
- help_text: |-
The instance resource name, in the format
`projects/{projectId}/locations/{location}/instances/{instanceId}`.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_locations_instances
required: true
request:
api_version: v1alpha
collection:
- lustre.projects.locations.instances

View File

@@ -0,0 +1,41 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- GA
auto_generated: true
help_text:
brief: Gets details of a single Managed Lustre instance
description: |
Gets details of a single Managed Lustre instance.
examples: |-
To get the details of a single instance `my-instance` in location `us-central1-a` run:
$ {command} my-instance --location=us-central1-a
arguments:
params:
- help_text: |-
The instance resource name, in the format
`projects/{projectId}/locations/{location}/instances/{instanceId}`.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_locations_instances
required: true
request:
api_version: v1
collection:
- lustre.projects.locations.instances

View File

@@ -0,0 +1,79 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- ALPHA
auto_generated: true
help_text:
brief: Exports data from Managed Lustre instance to Cloud Storage.
description: |
Exports data from Managed Lustre instance to Cloud Storage.
examples: |-
To export data from `my-instance` to `gs://my-bucket` storage run:
$ {command} my-instance --location=us-central-a --gcs-path-uri=gs://my-bucket --lustre-path='/path/to/lustre/dir'
arguments:
params:
- arg_name: lustre-path
api_field: exportDataRequest.lustrePath.path
required: false
repeated: false
help_text: |-
The root directory path to the Managed Lustre file system. Must start with
`/`. Default is `/`. If you're importing data into Managed Lustre, any
path other than the default must already exist on the file system.
- arg_name: gcs-path-uri
api_field: exportDataRequest.gcsPath.uri
required: true
repeated: false
help_text: |-
The URI to a Cloud Storage bucket, or a path within a bucket, using the
format `gs://<bucket_name>/<optional_path_inside_bucket>/`. If a path
inside the bucket is specified, it must end with a forward slash (`/`).
- help_text: |-
The name of the Managed Lustre instance in the format
`projects/{project}/locations/{location}/instances/{instance}`.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_locations_instances
required: true
- arg_name: request-id
api_field: exportDataRequest.requestId
required: false
repeated: false
help_text: |-
UUID to identify requests.
- arg_name: service-account
help_text: |-
User-specified service account used to perform the transfer.
If unspecified, the Managed Lustre service agent is used.
is_positional: false
is_primary_resource: false
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_service_accounts
resource_method_params:
exportDataRequest.serviceAccount: '{__relative_name__}'
required: false
request:
api_version: v1alpha
collection:
- lustre.projects.locations.instances
method: exportData
async:
collection:
- lustre.projects.locations.operations
extract_resource_result: false
command_type: GENERIC

View File

@@ -0,0 +1,79 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- GA
auto_generated: true
help_text:
brief: Exports data from Managed Lustre instance to Cloud Storage.
description: |
Exports data from Managed Lustre instance to Cloud Storage.
examples: |-
To export data from `my-instance` to `gs://my-bucket` storage run:
$ {command} my-instance --location=us-central-a --gcs-path-uri=gs://my-bucket --lustre-path='/path/to/lustre/dir'
arguments:
params:
- arg_name: lustre-path
api_field: exportDataRequest.lustrePath.path
required: false
repeated: false
help_text: |-
The root directory path to the Managed Lustre file system. Must start with
`/`. Default is `/`. If you're importing data into Managed Lustre, any
path other than the default must already exist on the file system.
- arg_name: gcs-path-uri
api_field: exportDataRequest.gcsPath.uri
required: true
repeated: false
help_text: |-
The URI to a Cloud Storage bucket, or a path within a bucket, using the
format `gs://<bucket_name>/<optional_path_inside_bucket>/`. If a path
inside the bucket is specified, it must end with a forward slash (`/`).
- help_text: |-
The name of the Managed Lustre instance in the format
`projects/{project}/locations/{location}/instances/{instance}`.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_locations_instances
required: true
- arg_name: request-id
api_field: exportDataRequest.requestId
required: false
repeated: false
help_text: |-
UUID to identify requests.
- arg_name: service-account
help_text: |-
User-specified service account used to perform the transfer.
If unspecified, the Managed Lustre service agent is used.
is_positional: false
is_primary_resource: false
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_service_accounts
resource_method_params:
exportDataRequest.serviceAccount: '{__relative_name__}'
required: false
request:
api_version: v1
collection:
- lustre.projects.locations.instances
method: exportData
async:
collection:
- lustre.projects.locations.operations
extract_resource_result: false
command_type: GENERIC

View File

@@ -0,0 +1,79 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- ALPHA
auto_generated: true
help_text:
brief: Imports data from Cloud Storage to Managed Lustre instance.
description: |
Imports data from Cloud Storage to Managed Lustre instance.
examples: |-
To import data from `gs://my-bucket` storage to `my-instance` run:
$ {command} my-instance --location=us-central-a --gcs-path-uri=gs://my_bucket --lustre-path='/path/to/lustre/dir'
arguments:
params:
- arg_name: gcs-path-uri
api_field: importDataRequest.gcsPath.uri
required: true
repeated: false
help_text: |-
The URI to a Cloud Storage bucket, or a path within a bucket, using the
format `gs://<bucket_name>/<optional_path_inside_bucket>/`. If a path
inside the bucket is specified, it must end with a forward slash (`/`).
- arg_name: lustre-path
api_field: importDataRequest.lustrePath.path
required: false
repeated: false
help_text: |-
The root directory path to the Managed Lustre file system. Must start with
`/`. Default is `/`. If you're importing data into Managed Lustre, any
path other than the default must already exist on the file system.
- help_text: |-
The name of the Managed Lustre instance in the format
`projects/{project}/locations/{location}/instances/{instance}`.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_locations_instances
required: true
- arg_name: request-id
api_field: importDataRequest.requestId
required: false
repeated: false
help_text: |-
UUID to identify requests.
- arg_name: service-account
help_text: |-
User-specified service account used to perform the transfer.
If unspecified, the default Managed Lustre service agent will be used.
is_positional: false
is_primary_resource: false
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_service_accounts
resource_method_params:
importDataRequest.serviceAccount: '{__relative_name__}'
required: false
request:
api_version: v1alpha
collection:
- lustre.projects.locations.instances
method: importData
async:
collection:
- lustre.projects.locations.operations
extract_resource_result: false
command_type: GENERIC

View File

@@ -0,0 +1,79 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- GA
auto_generated: true
help_text:
brief: Imports data from Cloud Storage to Managed Lustre instance.
description: |
Imports data from Cloud Storage to Managed Lustre instance.
examples: |-
To import data from `gs://my-bucket` storage to `my-instance` run:
$ {command} my-instance --location=us-central-a --gcs-path-uri=gs://my_bucket --lustre-path='/path/to/lustre/dir'
arguments:
params:
- arg_name: gcs-path-uri
api_field: importDataRequest.gcsPath.uri
required: true
repeated: false
help_text: |-
The URI to a Cloud Storage bucket, or a path within a bucket, using the
format `gs://<bucket_name>/<optional_path_inside_bucket>/`. If a path
inside the bucket is specified, it must end with a forward slash (`/`).
- arg_name: lustre-path
api_field: importDataRequest.lustrePath.path
required: false
repeated: false
help_text: |-
The root directory path to the Managed Lustre file system. Must start with
`/`. Default is `/`. If you're importing data into Managed Lustre, any
path other than the default must already exist on the file system.
- help_text: |-
The name of the Managed Lustre instance in the format
`projects/{project}/locations/{location}/instances/{instance}`.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_locations_instances
required: true
- arg_name: request-id
api_field: importDataRequest.requestId
required: false
repeated: false
help_text: |-
UUID to identify requests.
- arg_name: service-account
help_text: |-
User-specified service account used to perform the transfer.
If unspecified, the default Managed Lustre service agent will be used.
is_positional: false
is_primary_resource: false
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_service_accounts
resource_method_params:
importDataRequest.serviceAccount: '{__relative_name__}'
required: false
request:
api_version: v1
collection:
- lustre.projects.locations.instances
method: importData
async:
collection:
- lustre.projects.locations.operations
extract_resource_result: false
command_type: GENERIC

View File

@@ -0,0 +1,46 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- ALPHA
auto_generated: true
help_text:
brief: List Lustre instances
description: |
List Managed Lustre instances.
examples: |-
To list all instances in particular location `us-central1-a` run:
$ {command} --location=us-central1-a
arguments:
params:
- help_text: |-
The project and location for which to retrieve a list of instances, in
the format `projects/{projectId}/locations/{location}`.
To retrieve instance information for all locations, use "-" as the value
of `{location}`.
is_positional: false
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_locations
required: true
request:
api_version: v1alpha
collection:
- lustre.projects.locations.instances
response:
id_field: name

View File

@@ -0,0 +1,46 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- GA
auto_generated: true
help_text:
brief: List Lustre instances
description: |
List Managed Lustre instances.
examples: |-
To list all instances in particular location `us-central1-a` run:
$ {command} --location=us-central1-a
arguments:
params:
- help_text: |-
The project and location for which to retrieve a list of instances, in
the format `projects/{projectId}/locations/{location}`.
To retrieve instance information for all locations, use "-" as the value
of `{location}`.
is_positional: false
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_locations
required: true
request:
api_version: v1
collection:
- lustre.projects.locations.instances
response:
id_field: name

View File

@@ -0,0 +1,374 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- ALPHA
auto_generated: true
help_text:
brief: Updates the parameters of a single Managed Lustre instance
description: |
Updates the parameters of a single Managed Lustre instance.
examples: |-
To update the description of an instance `my-instance` in location `us-central1-a` run:
$ {command} my-instance --location=us-central1-a --description="<updated description>"
arguments:
params:
- group:
mutex: true
hidden: true
help_text: |-
Arguments for the audit log level.
params:
- arg_name: audit-log-level
api_field: instance.auditLogLevel
required: false
hidden: true
help_text: |-
The file system audit log level for the instance.
choices:
- arg_value: disabled
enum_value: DISABLED
help_text: |-
File system audit logs are explicitly disabled.
- arg_value: basic
enum_value: BASIC
help_text: |-
File system basic audit logs are enabled.
- help_text: |-
Identifier.
The name of the instance.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1alpha_resources:projects_locations_instances
required: true
- arg_name: capacity-gib
api_field: instance.capacityGib
required: false
repeated: false
type: long
help_text: |-
The storage capacity of the instance in gibibytes (GiB). Allowed values
are from `18000` to `7632000`, depending on the `perUnitStorageThroughput`.
See [Performance tiers and maximum storage
capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers)
for specific minimums, maximums, and step sizes for each performance tier.
- arg_name: description
api_field: instance.description
required: false
repeated: false
help_text: |-
A user-readable description of the instance.
- arg_name: labels
api_field: instance.labels
required: false
repeated: true
help_text: |-
Labels as key value pairs.
clearable: true
spec:
- api_field: key
- api_field: value
- arg_name: per-unit-storage-throughput
api_field: instance.perUnitStorageThroughput
required: false
repeated: false
type: long
help_text: |-
The throughput of the instance in MBps per TiB. Valid values are 125, 250,
500, 1000.
See [Performance tiers and maximum storage
capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers)
for more information.
- arg_name: gke-support-enabled
api_field: instance.gkeSupportEnabled
action: store_true_false
required: false
type: bool
help_text: |-
Indicates whether you want to enable support for GKE clients. By default,
GKE clients are not supported.
Deprecated. No longer required for GKE instance creation.
- arg_name: placement-policy
api_field: instance.placementPolicy
required: false
repeated: false
help_text: |-
The placement policy name for the instance in the format of
projects/{project}/locations/{location}/resourcePolicies/{resource_policy}
- group:
api_field: instance.accessRulesOptions
arg_name: ''
clearable: true
required: false
help_text: |-
IP-based access rules for the Managed Lustre instance. These options
define the root user squash configuration.
params:
- arg_name: access-rules
api_field: instance.accessRulesOptions.accessRules
required: false
repeated: true
help_text: |-
The access rules for the instance.
clearable: true
spec:
- api_field: name
help_text: |-
The name of the access rule policy group.
Must be 16 characters or less and include only alphanumeric characters
or '_'.
- api_field: ipAddressRanges
help_text: |-
The IP address ranges to which to apply this access rule. Accepts
non-overlapping CIDR ranges (e.g., `192.168.1.0/24`) and IP addresses
(e.g., `192.168.1.0`).
- api_field: accessMode
help_text: |-
The access mode for the access rule nodemap.
Default is [READ_WRITE][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.AccessMode.READ_WRITE].
- api_field: squashMode
help_text: |-
Squash mode for the access rule.
- api_field: squashUid
help_text: |-
Squash UID for the access rule. If the squash mode for this rule is
[ROOT_SQUASH][google.cloud.lustre.v1alpha.AccessRulesOptions.SquashMode.ROOT_SQUASH], root users matching the
[ip_address_ranges][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.ip_address_ranges] are squashed to this
UID. Defaults to 0 (no root squash).
- api_field: squashGid
help_text: |-
Squash GID for the access rule. If the squash mode for this rule is
[ROOT_SQUASH][google.cloud.lustre.v1alpha.AccessRulesOptions.SquashMode.ROOT_SQUASH], root users matching the
[ip_address_ranges][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.ip_address_ranges] are squashed to this
GID. Defaults to 0 (no root squash).
- api_field: mountableSubdirectories
help_text: |-
The list of non-root directories that can be mounted from
clients in this NID range subset. Currently, there can be only a single
directory at most. If no directory is mentioned, then the root directory
will be accessible.
- arg_name: default-squash-mode
api_field: instance.accessRulesOptions.defaultSquashMode
required: false
help_text: |-
The squash mode for the default access rule.
choices:
- arg_value: no-squash
enum_value: NO_SQUASH
help_text: |-
Squash is disabled.
If set inside an [AccessRule][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule], root users matching the
[ip_ranges][AccessRule.ip_ranges] are not squashed.
If set as the [default_squash_mode][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_mode], root squash is
disabled for this instance.
If the default squash mode is `NO_SQUASH`, do not set the
[default_squash_uid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_uid] or
[default_squash_gid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_gid], or an `invalid argument` error
is returned.
- arg_value: root-squash
enum_value: ROOT_SQUASH
help_text: |-
Root user squash is enabled.
Not supported inside an [AccessRule][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule].
If set as the [default_squash_mode][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_mode],
root users not matching any of the [access_rules][google.cloud.lustre.v1alpha.AccessRulesOptions.access_rules] are
squashed to the [default_squash_uid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_uid] and
[default_squash_gid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_gid].
- arg_value: all-users-squash
enum_value: ALL_USERS_SQUASH
help_text: |-
All users squashed to the [squash_uid][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.squash_uid] and
[squash_gid][google.cloud.lustre.v1alpha.AccessRulesOptions.AccessRule.squash_gid] for the access rule.
If this is for the [default_squash_mode][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_mode], then the
[default_squash_uid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_uid] and
[default_squash_gid][google.cloud.lustre.v1alpha.AccessRulesOptions.default_squash_gid] will be squashed.
hidden: true
- arg_name: default-squash-uid
api_field: instance.accessRulesOptions.defaultSquashUid
required: false
repeated: false
type: int
help_text: |-
The user squash UID for the default access rule.
This user squash UID applies to all root users connecting from clients
that are not matched by any of the access rules. If not set, the default
is 0 (no UID squash).
- arg_name: default-squash-gid
api_field: instance.accessRulesOptions.defaultSquashGid
required: false
repeated: false
type: int
help_text: |-
The user squash GID for the default access rule.
This user squash GID applies to all root users connecting from clients
that are not matched by any of the access rules. If not set, the default
is 0 (no GID squash).
- arg_name: default-mountable-subdirectories
api_field: instance.accessRulesOptions.defaultMountableSubdirectories
required: false
repeated: true
hidden: true
help_text: |-
The list of non-root directories that can be mounted from
clients in the default access rule. Currently, there can be only a single
directory at most. If no directory is mentioned, then the root directory
will be accessible.
clearable: true
- group:
api_field: instance.maintenancePolicy
arg_name: maintenance-policy
clearable: true
required: false
hidden: true
help_text: |-
The maintenance policy for the instance to determine when to allow or deny
updates.
params:
- arg_name: maintenance-policy-windows
api_field: instance.maintenancePolicy.maintenanceWindows
required: false
repeated: true
help_text: |-
The maintenance window for the instance.
clearable: true
spec:
- api_field: dayOfWeek
help_text: |-
Day of the week for the maintenance window.
- api_field: startTime
help_text: |-
Start time of the maintenance window in UTC time zone.
spec:
- api_field: hours
help_text: |-
Hours of a day in 24 hour format. Must be greater than or equal to 0 and
typically must be less than or equal to 23. An API may choose to allow the
value "24:00:00" for scenarios like business closing time.
- api_field: minutes
help_text: |-
Minutes of an hour. Must be greater than or equal to 0 and less than or
equal to 59.
- api_field: seconds
help_text: |-
Seconds of a minute. Must be greater than or equal to 0 and typically must
be less than or equal to 59. An API may allow the value 60 if it allows
leap-seconds.
- api_field: nanos
help_text: |-
Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
and less than or equal to 999,999,999.
- arg_name: maintenance-policy-deny-periods
api_field: instance.maintenancePolicy.denyPeriods
required: false
repeated: true
help_text: |-
The deny periods for the instance.
Currently limited to 4.
clearable: true
spec:
- api_field: startDate
help_text: |-
Start date of the deny period in UTC time zone.
spec:
- api_field: year
help_text: |-
Year of the date. Must be from 1 to 9999, or 0 to specify a date without
a year.
- api_field: month
help_text: |-
Month of a year. Must be from 1 to 12, or 0 to specify a year without a
month and day.
- api_field: day
help_text: |-
Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
to specify a year by itself or a year and month where the day isn't
significant.
- api_field: endDate
help_text: |-
End date of the deny period in UTC time zone.
spec:
- api_field: year
help_text: |-
Year of the date. Must be from 1 to 9999, or 0 to specify a date without
a year.
- api_field: month
help_text: |-
Month of a year. Must be from 1 to 12, or 0 to specify a year without a
month and day.
- api_field: day
help_text: |-
Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
to specify a year by itself or a year and month where the day isn't
significant.
- api_field: time
help_text: |-
Time in UTC when the deny period starts on start_date and ends on
end_date. This can be:
* Full time OR
* All zeros for 00:00:00 UTC
spec:
- api_field: hours
help_text: |-
Hours of a day in 24 hour format. Must be greater than or equal to 0 and
typically must be less than or equal to 23. An API may choose to allow the
value "24:00:00" for scenarios like business closing time.
- api_field: minutes
help_text: |-
Minutes of an hour. Must be greater than or equal to 0 and less than or
equal to 59.
- api_field: seconds
help_text: |-
Seconds of a minute. Must be greater than or equal to 0 and typically must
be less than or equal to 59. An API may allow the value 60 if it allows
leap-seconds.
- api_field: nanos
help_text: |-
Fractions of seconds, in nanoseconds. Must be greater than or equal to 0
and less than or equal to 999,999,999.
- 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 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).
request:
api_version: v1alpha
collection:
- lustre.projects.locations.instances
async:
collection:
- lustre.projects.locations.operations
update:
read_modify_update: true

View File

@@ -0,0 +1,200 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
- GA
auto_generated: true
help_text:
brief: Updates the parameters of a single Managed Lustre instance
description: |
Updates the parameters of a single Managed Lustre instance.
examples: |-
To update the description of an instance `my-instance` in location `us-central1-a` run:
$ {command} my-instance --location=us-central1-a --description="<updated description>"
arguments:
params:
- help_text: |-
Identifier.
The name of the instance.
is_positional: true
is_primary_resource: true
resource_spec: !REF googlecloudsdk.command_lib.lustre.v1_resources:projects_locations_instances
required: true
- arg_name: capacity-gib
api_field: instance.capacityGib
required: false
repeated: false
type: long
help_text: |-
The storage capacity of the instance in gibibytes (GiB). Allowed values
are from `18000` to `7632000`, depending on the `perUnitStorageThroughput`.
See [Performance tiers and maximum storage
capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers)
for specific minimums, maximums, and step sizes for each performance tier.
- arg_name: description
api_field: instance.description
required: false
repeated: false
help_text: |-
A user-readable description of the instance.
- arg_name: labels
api_field: instance.labels
required: false
repeated: true
help_text: |-
Labels as key value pairs.
clearable: true
spec:
- api_field: key
- api_field: value
- arg_name: per-unit-storage-throughput
api_field: instance.perUnitStorageThroughput
required: false
repeated: false
type: long
help_text: |-
The throughput of the instance in MBps per TiB. Valid values are 125, 250,
500, 1000.
See [Performance tiers and maximum storage
capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers)
for more information.
- arg_name: gke-support-enabled
api_field: instance.gkeSupportEnabled
action: store_true_false
required: false
type: bool
help_text: |-
Indicates whether you want to enable support for GKE clients. By default,
GKE clients are not supported.
Deprecated. No longer required for GKE instance creation.
- arg_name: placement-policy
api_field: instance.placementPolicy
required: false
repeated: false
help_text: |-
The placement policy name for the instance in the format of
projects/{project}/locations/{location}/resourcePolicies/{resource_policy}
- group:
api_field: instance.accessRulesOptions
arg_name: ''
clearable: true
required: false
help_text: |-
IP-based access rules for the Managed Lustre instance. These options
define the root user squash configuration.
params:
- arg_name: access-rules
api_field: instance.accessRulesOptions.accessRules
required: false
repeated: true
help_text: |-
The access rules for the instance.
clearable: true
spec:
- api_field: name
help_text: |-
The name of the access rule policy group.
Must be 16 characters or less and include only alphanumeric characters
or '_'.
- api_field: ipAddressRanges
help_text: |-
The IP address ranges to which to apply this access rule. Accepts
non-overlapping CIDR ranges (e.g., `192.168.1.0/24`) and IP addresses
(e.g., `192.168.1.0`).
- api_field: squashMode
help_text: |-
Squash mode for the access rule.
- arg_name: default-squash-mode
api_field: instance.accessRulesOptions.defaultSquashMode
required: false
help_text: |-
The squash mode for the default access rule.
choices:
- arg_value: no-squash
enum_value: NO_SQUASH
help_text: |-
Squash is disabled.
If set inside an [AccessRule][google.cloud.lustre.v1.AccessRulesOptions.AccessRule], root users matching the
[ip_ranges][AccessRule.ip_ranges] are not squashed.
If set as the [default_squash_mode][google.cloud.lustre.v1.AccessRulesOptions.default_squash_mode], root squash is
disabled for this instance.
If the default squash mode is `NO_SQUASH`, do not set the
[default_squash_uid][google.cloud.lustre.v1.AccessRulesOptions.default_squash_uid] or
[default_squash_gid][google.cloud.lustre.v1.AccessRulesOptions.default_squash_gid], or an `invalid argument` error
is returned.
- arg_value: root-squash
enum_value: ROOT_SQUASH
help_text: |-
Root user squash is enabled.
Not supported inside an [AccessRule][google.cloud.lustre.v1.AccessRulesOptions.AccessRule].
If set as the [default_squash_mode][google.cloud.lustre.v1.AccessRulesOptions.default_squash_mode],
root users not matching any of the [access_rules][google.cloud.lustre.v1.AccessRulesOptions.access_rules] are
squashed to the [default_squash_uid][google.cloud.lustre.v1.AccessRulesOptions.default_squash_uid] and
[default_squash_gid][google.cloud.lustre.v1.AccessRulesOptions.default_squash_gid].
- arg_name: default-squash-uid
api_field: instance.accessRulesOptions.defaultSquashUid
required: false
repeated: false
type: int
help_text: |-
The user squash UID for the default access rule.
This user squash UID applies to all root users connecting from clients
that are not matched by any of the access rules. If not set, the default
is 0 (no UID squash).
- arg_name: default-squash-gid
api_field: instance.accessRulesOptions.defaultSquashGid
required: false
repeated: false
type: int
help_text: |-
The user squash GID for the default access rule.
This user squash GID applies to all root users connecting from clients
that are not matched by any of the access rules. If not set, the default
is 0 (no GID squash).
- 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 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).
request:
api_version: v1
collection:
- lustre.projects.locations.instances
async:
collection:
- lustre.projects.locations.operations
update:
read_modify_update: true

View File

@@ -0,0 +1,18 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
_PARTIALS_: true

View File

@@ -0,0 +1,18 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
_PARTIALS_: true

View File

@@ -0,0 +1,18 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
_PARTIALS_: true

View File

@@ -0,0 +1,18 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
_PARTIALS_: true

View File

@@ -0,0 +1,18 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
_PARTIALS_: true

View File

@@ -0,0 +1,18 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
_PARTIALS_: true

View File

@@ -0,0 +1,18 @@
# -*- 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
_PARTIALS_: true