diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6c65009bb63..892c55974df 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -316,3 +316,4 @@ /src/network-analytics/ @pikanghosh1 +/src/azurelargeinstance/ @8Gitbrix \ No newline at end of file diff --git a/src/azurelargeinstance/HISTORY.rst b/src/azurelargeinstance/HISTORY.rst new file mode 100644 index 00000000000..abbff5a61a7 --- /dev/null +++ b/src/azurelargeinstance/HISTORY.rst @@ -0,0 +1,8 @@ +.. :changelog: + +Release History +=============== + +1.0.0b1 +++++++ +* Initial release. \ No newline at end of file diff --git a/src/azurelargeinstance/README.md b/src/azurelargeinstance/README.md new file mode 100644 index 00000000000..36314212d81 --- /dev/null +++ b/src/azurelargeinstance/README.md @@ -0,0 +1,51 @@ +# Azure CLI Azurelargeinstance Extension # +This is an extension to Azure CLI to manage Azure Large Instance resources. + +## Setup: +1. Install CLI first: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli +2. Install the extension by running `az extension add -n azurelargeinstance` + +## Usage Examples: +To list Azure Large Instances in a subscription + +`az large-instance list --subscription $SUBSCRIPTION_ID` + +To list Azure Large Instances in a specific subscription and resource group + +`az large-instance list --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP` + +To restart an Azure Large Instance + +`az large-instance restart --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP --instance-name $INSTANCE_NAME` + +To show details about an Azure Large Instance + +`az large-instance show --subscription $SUBSCRIPTION_ID --instance-name $INSTANCE_NAME --resource-group $RESOURCE_GROUP` + +To shutdown an Azure Large Instance + +`az large-instance shutdown --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP --instance-name $INSTANCE_NAME` + +To start an Azure Large Instance + +`az large-instance start --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP --instance-name $INSTANCE_NAME` + +To add an Azure Large Instance tag + +`az large-instance update --subscription $SUBSCRIPTION_ID --instance-name=$INSTANCE_NAME --resource-group=$RESOURCE_GROUP --tags newKey=value` + +To list Azure Large Storage Instances in a subscription + +`az large-storage-instance list --subscription $SUBSCRIPTION_ID` + +To list Azure Large Storage Instances in a specific subscription and resource group + +`az large-storage-instance list --subscription $SUBSCRIPTIONID --resource-group $RESOURCE_GROUP` + +To show details about a specific Azure Large Storage Instance + +`az large-storage-instance show --subscription $SUBSCRIPTION_ID --instance-name $INSTANCE_NAME --resource-group $RESOURCE_GROUP` + +To add an Azure Large Storage Instance tag + +`az large-storage-instance update --subscription $SUBSCRIPTION_ID --instance-name $INSTANCE_NAME --resource-group $RESOURCE_GROUP --tags newKey=value` \ No newline at end of file diff --git a/src/azurelargeinstance/azext_azurelargeinstance/__init__.py b/src/azurelargeinstance/azext_azurelargeinstance/__init__.py new file mode 100644 index 00000000000..3c4081efda6 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/__init__.py @@ -0,0 +1,42 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +from azure.cli.core import AzCommandsLoader +from azext_azurelargeinstance._help import helps # pylint: disable=unused-import + + +class AzurelargeinstanceCommandsLoader(AzCommandsLoader): + + def __init__(self, cli_ctx=None): + from azure.cli.core.commands import CliCommandType + custom_command_type = CliCommandType( + operations_tmpl='azext_azurelargeinstance.custom#{}') + super().__init__(cli_ctx=cli_ctx, + custom_command_type=custom_command_type) + + def load_command_table(self, args): + from azext_azurelargeinstance.commands import load_command_table + from azure.cli.core.aaz import load_aaz_command_table + try: + from . import aaz + except ImportError: + aaz = None + if aaz: + load_aaz_command_table( + loader=self, + aaz_pkg_name=aaz.__name__, + args=args + ) + load_command_table(self, args) + return self.command_table + + def load_arguments(self, command): + from azext_azurelargeinstance._params import load_arguments + load_arguments(self, command) + + +COMMAND_LOADER_CLS = AzurelargeinstanceCommandsLoader diff --git a/src/azurelargeinstance/azext_azurelargeinstance/_help.py b/src/azurelargeinstance/azext_azurelargeinstance/_help.py new file mode 100644 index 00000000000..126d5d00714 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/_help.py @@ -0,0 +1,11 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: disable=line-too-long +# pylint: disable=too-many-lines + +from knack.help_files import helps # pylint: disable=unused-import diff --git a/src/azurelargeinstance/azext_azurelargeinstance/_params.py b/src/azurelargeinstance/azext_azurelargeinstance/_params.py new file mode 100644 index 00000000000..cfcec717c9c --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/_params.py @@ -0,0 +1,13 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + + +def load_arguments(self, _): # pylint: disable=unused-argument + pass diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/__init__.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/__init__.py new file mode 100644 index 00000000000..5757aea3175 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/__init__.py @@ -0,0 +1,6 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/__init__.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/__init__.py new file mode 100644 index 00000000000..5757aea3175 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/__init__.py @@ -0,0 +1,6 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/__cmd_group.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/__cmd_group.py new file mode 100644 index 00000000000..9b147376def --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "large-instance", +) +class __CMDGroup(AAZCommandGroup): + """Handle Operations for Compute Azure Large Instances. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/__init__.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/__init__.py new file mode 100644 index 00000000000..5d057a48206 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/__init__.py @@ -0,0 +1,17 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._list import * +from ._restart import * +from ._show import * +from ._shutdown import * +from ._start import * +from ._update import * diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_list.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_list.py new file mode 100644 index 00000000000..5c3c3acf38f --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_list.py @@ -0,0 +1,543 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "large-instance list", +) +class List(AAZCommand): + """Gets a list of Azure Large Instances in the specified subscription. The operations returns various properties of each Azure Large Instance. + + :example: To list Azure Large Instances in a subscription + az large-instance list --subscription $SUBSCRIPTION_ID + + :example: To list Azure Large Instances in a specific subscription and resource group + az large-instance list --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP + """ + + _aaz_info = { + "version": "2023-07-20-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/providers/microsoft.azurelargeinstance/azurelargeinstances", "2023-07-20-preview"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.azurelargeinstance/azurelargeinstances", "2023-07-20-preview"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.resource_group = AAZResourceGroupNameArg() + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + condition_0 = has_value(self.ctx.args.resource_group) and has_value(self.ctx.subscription_id) + condition_1 = has_value(self.ctx.subscription_id) and has_value(self.ctx.args.resource_group) is not True + if condition_0: + self.AzureLargeInstanceListByResourceGroup(ctx=self.ctx)() + if condition_1: + self.AzureLargeInstanceListBySubscription(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class AzureLargeInstanceListByResourceGroup(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureLargeInstance/azureLargeInstances", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.location = AAZStrType( + flags={"required": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.tags = AAZDictType() + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.azure_large_instance_id = AAZStrType( + serialized_name="azureLargeInstanceId", + flags={"read_only": True}, + ) + properties.hardware_profile = AAZObjectType( + serialized_name="hardwareProfile", + ) + properties.hw_revision = AAZStrType( + serialized_name="hwRevision", + flags={"read_only": True}, + ) + properties.network_profile = AAZObjectType( + serialized_name="networkProfile", + ) + properties.os_profile = AAZObjectType( + serialized_name="osProfile", + ) + properties.partner_node_id = AAZStrType( + serialized_name="partnerNodeId", + ) + properties.power_state = AAZStrType( + serialized_name="powerState", + flags={"read_only": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.proximity_placement_group = AAZStrType( + serialized_name="proximityPlacementGroup", + flags={"read_only": True}, + ) + properties.storage_profile = AAZObjectType( + serialized_name="storageProfile", + ) + + hardware_profile = cls._schema_on_200.value.Element.properties.hardware_profile + hardware_profile.azure_large_instance_size = AAZStrType( + serialized_name="azureLargeInstanceSize", + flags={"read_only": True}, + ) + hardware_profile.hardware_type = AAZStrType( + serialized_name="hardwareType", + flags={"read_only": True}, + ) + + network_profile = cls._schema_on_200.value.Element.properties.network_profile + network_profile.circuit_id = AAZStrType( + serialized_name="circuitId", + flags={"read_only": True}, + ) + network_profile.network_interfaces = AAZListType( + serialized_name="networkInterfaces", + ) + + network_interfaces = cls._schema_on_200.value.Element.properties.network_profile.network_interfaces + network_interfaces.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.properties.network_profile.network_interfaces.Element + _element.ip_address = AAZStrType( + serialized_name="ipAddress", + ) + + os_profile = cls._schema_on_200.value.Element.properties.os_profile + os_profile.computer_name = AAZStrType( + serialized_name="computerName", + ) + os_profile.os_type = AAZStrType( + serialized_name="osType", + flags={"read_only": True}, + ) + os_profile.ssh_public_key = AAZStrType( + serialized_name="sshPublicKey", + ) + os_profile.version = AAZStrType( + flags={"read_only": True}, + ) + + storage_profile = cls._schema_on_200.value.Element.properties.storage_profile + storage_profile.nfs_ip_address = AAZStrType( + serialized_name="nfsIpAddress", + flags={"read_only": True}, + ) + storage_profile.os_disks = AAZListType( + serialized_name="osDisks", + ) + + os_disks = cls._schema_on_200.value.Element.properties.storage_profile.os_disks + os_disks.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.properties.storage_profile.os_disks.Element + _element.disk_size_gb = AAZIntType( + serialized_name="diskSizeGB", + ) + _element.lun = AAZIntType( + flags={"read_only": True}, + ) + _element.name = AAZStrType() + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.value.Element.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + class AzureLargeInstanceListBySubscription(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureLargeInstance/azureLargeInstances", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.location = AAZStrType( + flags={"required": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.tags = AAZDictType() + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.azure_large_instance_id = AAZStrType( + serialized_name="azureLargeInstanceId", + flags={"read_only": True}, + ) + properties.hardware_profile = AAZObjectType( + serialized_name="hardwareProfile", + ) + properties.hw_revision = AAZStrType( + serialized_name="hwRevision", + flags={"read_only": True}, + ) + properties.network_profile = AAZObjectType( + serialized_name="networkProfile", + ) + properties.os_profile = AAZObjectType( + serialized_name="osProfile", + ) + properties.partner_node_id = AAZStrType( + serialized_name="partnerNodeId", + ) + properties.power_state = AAZStrType( + serialized_name="powerState", + flags={"read_only": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.proximity_placement_group = AAZStrType( + serialized_name="proximityPlacementGroup", + flags={"read_only": True}, + ) + properties.storage_profile = AAZObjectType( + serialized_name="storageProfile", + ) + + hardware_profile = cls._schema_on_200.value.Element.properties.hardware_profile + hardware_profile.azure_large_instance_size = AAZStrType( + serialized_name="azureLargeInstanceSize", + flags={"read_only": True}, + ) + hardware_profile.hardware_type = AAZStrType( + serialized_name="hardwareType", + flags={"read_only": True}, + ) + + network_profile = cls._schema_on_200.value.Element.properties.network_profile + network_profile.circuit_id = AAZStrType( + serialized_name="circuitId", + flags={"read_only": True}, + ) + network_profile.network_interfaces = AAZListType( + serialized_name="networkInterfaces", + ) + + network_interfaces = cls._schema_on_200.value.Element.properties.network_profile.network_interfaces + network_interfaces.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.properties.network_profile.network_interfaces.Element + _element.ip_address = AAZStrType( + serialized_name="ipAddress", + ) + + os_profile = cls._schema_on_200.value.Element.properties.os_profile + os_profile.computer_name = AAZStrType( + serialized_name="computerName", + ) + os_profile.os_type = AAZStrType( + serialized_name="osType", + flags={"read_only": True}, + ) + os_profile.ssh_public_key = AAZStrType( + serialized_name="sshPublicKey", + ) + os_profile.version = AAZStrType( + flags={"read_only": True}, + ) + + storage_profile = cls._schema_on_200.value.Element.properties.storage_profile + storage_profile.nfs_ip_address = AAZStrType( + serialized_name="nfsIpAddress", + flags={"read_only": True}, + ) + storage_profile.os_disks = AAZListType( + serialized_name="osDisks", + ) + + os_disks = cls._schema_on_200.value.Element.properties.storage_profile.os_disks + os_disks.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.properties.storage_profile.os_disks.Element + _element.disk_size_gb = AAZIntType( + serialized_name="diskSizeGB", + ) + _element.lun = AAZIntType( + flags={"read_only": True}, + ) + _element.name = AAZStrType() + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.value.Element.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_restart.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_restart.py new file mode 100644 index 00000000000..5648d84ac14 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_restart.py @@ -0,0 +1,312 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "large-instance restart", +) +class Restart(AAZCommand): + """The operation to restart an Azure Large Instance (only for compute instances) + + :example: To restart an Azure Large Instance + az large-instance restart --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP --instance-name $INSTANCE_NAME + """ + + _aaz_info = { + "version": "2023-07-20-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.azurelargeinstance/azurelargeinstances/{}/restart", "2023-07-20-preview"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_lro_poller(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.instance_name = AAZStrArg( + options=["-n", "--name", "--instance-name"], + help="Name of the AzureLargeInstance.", + required=True, + id_part="name", + fmt=AAZStrArgFormat( + pattern=".*", + ), + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "ForceParameter" + + _args_schema = cls._args_schema + _args_schema.force_state = AAZStrArg( + options=["--force-state"], + arg_group="ForceParameter", + help="Whether to force restart by shutting all processes.", + enum={"active": "active", "inactive": "inactive"}, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + yield self.AzureLargeInstanceRestart(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class AzureLargeInstanceRestart(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [202]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200, + self.on_error, + lro_options={"final-state-via": "location"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200, + self.on_error, + lro_options={"final-state-via": "location"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureLargeInstance/azureLargeInstances/{azureLargeInstanceName}/restart", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "azureLargeInstanceName", self.ctx.args.instance_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"client_flatten": True}} + ) + _builder.set_prop("forceState", AAZStrType, ".force_state") + + return self.serialize_content(_content_value) + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _RestartHelper._build_schema_operation_status_result_read(cls._schema_on_200) + + return cls._schema_on_200 + + +class _RestartHelper: + """Helper class for Restart""" + + _schema_error_detail_read = None + + @classmethod + def _build_schema_error_detail_read(cls, _schema): + if cls._schema_error_detail_read is not None: + _schema.additional_info = cls._schema_error_detail_read.additional_info + _schema.code = cls._schema_error_detail_read.code + _schema.details = cls._schema_error_detail_read.details + _schema.message = cls._schema_error_detail_read.message + _schema.target = cls._schema_error_detail_read.target + return + + cls._schema_error_detail_read = _schema_error_detail_read = AAZObjectType() + + error_detail_read = _schema_error_detail_read + error_detail_read.additional_info = AAZListType( + serialized_name="additionalInfo", + flags={"read_only": True}, + ) + error_detail_read.code = AAZStrType( + flags={"read_only": True}, + ) + error_detail_read.details = AAZListType( + flags={"read_only": True}, + ) + error_detail_read.message = AAZStrType( + flags={"read_only": True}, + ) + error_detail_read.target = AAZStrType( + flags={"read_only": True}, + ) + + additional_info = _schema_error_detail_read.additional_info + additional_info.Element = AAZObjectType() + + _element = _schema_error_detail_read.additional_info.Element + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + details = _schema_error_detail_read.details + details.Element = AAZObjectType() + cls._build_schema_error_detail_read(details.Element) + + _schema.additional_info = cls._schema_error_detail_read.additional_info + _schema.code = cls._schema_error_detail_read.code + _schema.details = cls._schema_error_detail_read.details + _schema.message = cls._schema_error_detail_read.message + _schema.target = cls._schema_error_detail_read.target + + _schema_operation_status_result_read = None + + @classmethod + def _build_schema_operation_status_result_read(cls, _schema): + if cls._schema_operation_status_result_read is not None: + _schema.end_time = cls._schema_operation_status_result_read.end_time + _schema.error = cls._schema_operation_status_result_read.error + _schema.id = cls._schema_operation_status_result_read.id + _schema.name = cls._schema_operation_status_result_read.name + _schema.operations = cls._schema_operation_status_result_read.operations + _schema.percent_complete = cls._schema_operation_status_result_read.percent_complete + _schema.resource_id = cls._schema_operation_status_result_read.resource_id + _schema.start_time = cls._schema_operation_status_result_read.start_time + _schema.status = cls._schema_operation_status_result_read.status + return + + cls._schema_operation_status_result_read = _schema_operation_status_result_read = AAZObjectType() + + operation_status_result_read = _schema_operation_status_result_read + operation_status_result_read.end_time = AAZStrType( + serialized_name="endTime", + ) + operation_status_result_read.error = AAZObjectType() + cls._build_schema_error_detail_read(operation_status_result_read.error) + operation_status_result_read.id = AAZStrType() + operation_status_result_read.name = AAZStrType() + operation_status_result_read.operations = AAZListType() + operation_status_result_read.percent_complete = AAZFloatType( + serialized_name="percentComplete", + ) + operation_status_result_read.resource_id = AAZStrType( + serialized_name="resourceId", + flags={"read_only": True}, + ) + operation_status_result_read.start_time = AAZStrType( + serialized_name="startTime", + ) + operation_status_result_read.status = AAZStrType( + flags={"required": True}, + ) + + operations = _schema_operation_status_result_read.operations + operations.Element = AAZObjectType() + cls._build_schema_operation_status_result_read(operations.Element) + + _schema.end_time = cls._schema_operation_status_result_read.end_time + _schema.error = cls._schema_operation_status_result_read.error + _schema.id = cls._schema_operation_status_result_read.id + _schema.name = cls._schema_operation_status_result_read.name + _schema.operations = cls._schema_operation_status_result_read.operations + _schema.percent_complete = cls._schema_operation_status_result_read.percent_complete + _schema.resource_id = cls._schema_operation_status_result_read.resource_id + _schema.start_time = cls._schema_operation_status_result_read.start_time + _schema.status = cls._schema_operation_status_result_read.status + + +__all__ = ["Restart"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_show.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_show.py new file mode 100644 index 00000000000..1d2578932b7 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_show.py @@ -0,0 +1,310 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "large-instance show", +) +class Show(AAZCommand): + """Get an Azure Large Instance for the specified subscription, resource group, and instance name. + + :example: To show details about an Azure Large Instance + az large-instance show --subscription $SUBSCRIPTION_ID --instance-name $INSTANCE_NAME --resource-group $RESOURCE_GROUP + """ + + _aaz_info = { + "version": "2023-07-20-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.azurelargeinstance/azurelargeinstances/{}", "2023-07-20-preview"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.instance_name = AAZStrArg( + options=["-n", "--name", "--instance-name"], + help="Name of the AzureLargeInstance.", + required=True, + id_part="name", + fmt=AAZStrArgFormat( + pattern=".*", + ), + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.AzureLargeInstanceGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class AzureLargeInstanceGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureLargeInstance/azureLargeInstances/{azureLargeInstanceName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "azureLargeInstanceName", self.ctx.args.instance_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.tags = AAZDictType() + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.azure_large_instance_id = AAZStrType( + serialized_name="azureLargeInstanceId", + flags={"read_only": True}, + ) + properties.hardware_profile = AAZObjectType( + serialized_name="hardwareProfile", + ) + properties.hw_revision = AAZStrType( + serialized_name="hwRevision", + flags={"read_only": True}, + ) + properties.network_profile = AAZObjectType( + serialized_name="networkProfile", + ) + properties.os_profile = AAZObjectType( + serialized_name="osProfile", + ) + properties.partner_node_id = AAZStrType( + serialized_name="partnerNodeId", + ) + properties.power_state = AAZStrType( + serialized_name="powerState", + flags={"read_only": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.proximity_placement_group = AAZStrType( + serialized_name="proximityPlacementGroup", + flags={"read_only": True}, + ) + properties.storage_profile = AAZObjectType( + serialized_name="storageProfile", + ) + + hardware_profile = cls._schema_on_200.properties.hardware_profile + hardware_profile.azure_large_instance_size = AAZStrType( + serialized_name="azureLargeInstanceSize", + flags={"read_only": True}, + ) + hardware_profile.hardware_type = AAZStrType( + serialized_name="hardwareType", + flags={"read_only": True}, + ) + + network_profile = cls._schema_on_200.properties.network_profile + network_profile.circuit_id = AAZStrType( + serialized_name="circuitId", + flags={"read_only": True}, + ) + network_profile.network_interfaces = AAZListType( + serialized_name="networkInterfaces", + ) + + network_interfaces = cls._schema_on_200.properties.network_profile.network_interfaces + network_interfaces.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.network_profile.network_interfaces.Element + _element.ip_address = AAZStrType( + serialized_name="ipAddress", + ) + + os_profile = cls._schema_on_200.properties.os_profile + os_profile.computer_name = AAZStrType( + serialized_name="computerName", + ) + os_profile.os_type = AAZStrType( + serialized_name="osType", + flags={"read_only": True}, + ) + os_profile.ssh_public_key = AAZStrType( + serialized_name="sshPublicKey", + ) + os_profile.version = AAZStrType( + flags={"read_only": True}, + ) + + storage_profile = cls._schema_on_200.properties.storage_profile + storage_profile.nfs_ip_address = AAZStrType( + serialized_name="nfsIpAddress", + flags={"read_only": True}, + ) + storage_profile.os_disks = AAZListType( + serialized_name="osDisks", + ) + + os_disks = cls._schema_on_200.properties.storage_profile.os_disks + os_disks.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.storage_profile.os_disks.Element + _element.disk_size_gb = AAZIntType( + serialized_name="diskSizeGB", + ) + _element.lun = AAZIntType( + flags={"read_only": True}, + ) + _element.name = AAZStrType() + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_shutdown.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_shutdown.py new file mode 100644 index 00000000000..3d19b4bee95 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_shutdown.py @@ -0,0 +1,288 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "large-instance shutdown", +) +class Shutdown(AAZCommand): + """The operation to shutdown an Azure Large Instance (only for compute instances) + + :example: To shutdown an Azure Large Instance + az large-instance shutdown --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP --instance-name $INSTANCE_NAME + """ + + _aaz_info = { + "version": "2023-07-20-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.azurelargeinstance/azurelargeinstances/{}/shutdown", "2023-07-20-preview"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_lro_poller(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.instance_name = AAZStrArg( + options=["-n", "--name", "--instance-name"], + help="Name of the AzureLargeInstance.", + required=True, + id_part="name", + fmt=AAZStrArgFormat( + pattern=".*", + ), + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + yield self.AzureLargeInstanceShutdown(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class AzureLargeInstanceShutdown(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [202]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200, + self.on_error, + lro_options={"final-state-via": "location"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200, + self.on_error, + lro_options={"final-state-via": "location"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureLargeInstance/azureLargeInstances/{azureLargeInstanceName}/shutdown", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "azureLargeInstanceName", self.ctx.args.instance_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _ShutdownHelper._build_schema_operation_status_result_read(cls._schema_on_200) + + return cls._schema_on_200 + + +class _ShutdownHelper: + """Helper class for Shutdown""" + + _schema_error_detail_read = None + + @classmethod + def _build_schema_error_detail_read(cls, _schema): + if cls._schema_error_detail_read is not None: + _schema.additional_info = cls._schema_error_detail_read.additional_info + _schema.code = cls._schema_error_detail_read.code + _schema.details = cls._schema_error_detail_read.details + _schema.message = cls._schema_error_detail_read.message + _schema.target = cls._schema_error_detail_read.target + return + + cls._schema_error_detail_read = _schema_error_detail_read = AAZObjectType() + + error_detail_read = _schema_error_detail_read + error_detail_read.additional_info = AAZListType( + serialized_name="additionalInfo", + flags={"read_only": True}, + ) + error_detail_read.code = AAZStrType( + flags={"read_only": True}, + ) + error_detail_read.details = AAZListType( + flags={"read_only": True}, + ) + error_detail_read.message = AAZStrType( + flags={"read_only": True}, + ) + error_detail_read.target = AAZStrType( + flags={"read_only": True}, + ) + + additional_info = _schema_error_detail_read.additional_info + additional_info.Element = AAZObjectType() + + _element = _schema_error_detail_read.additional_info.Element + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + details = _schema_error_detail_read.details + details.Element = AAZObjectType() + cls._build_schema_error_detail_read(details.Element) + + _schema.additional_info = cls._schema_error_detail_read.additional_info + _schema.code = cls._schema_error_detail_read.code + _schema.details = cls._schema_error_detail_read.details + _schema.message = cls._schema_error_detail_read.message + _schema.target = cls._schema_error_detail_read.target + + _schema_operation_status_result_read = None + + @classmethod + def _build_schema_operation_status_result_read(cls, _schema): + if cls._schema_operation_status_result_read is not None: + _schema.end_time = cls._schema_operation_status_result_read.end_time + _schema.error = cls._schema_operation_status_result_read.error + _schema.id = cls._schema_operation_status_result_read.id + _schema.name = cls._schema_operation_status_result_read.name + _schema.operations = cls._schema_operation_status_result_read.operations + _schema.percent_complete = cls._schema_operation_status_result_read.percent_complete + _schema.resource_id = cls._schema_operation_status_result_read.resource_id + _schema.start_time = cls._schema_operation_status_result_read.start_time + _schema.status = cls._schema_operation_status_result_read.status + return + + cls._schema_operation_status_result_read = _schema_operation_status_result_read = AAZObjectType() + + operation_status_result_read = _schema_operation_status_result_read + operation_status_result_read.end_time = AAZStrType( + serialized_name="endTime", + ) + operation_status_result_read.error = AAZObjectType() + cls._build_schema_error_detail_read(operation_status_result_read.error) + operation_status_result_read.id = AAZStrType() + operation_status_result_read.name = AAZStrType() + operation_status_result_read.operations = AAZListType() + operation_status_result_read.percent_complete = AAZFloatType( + serialized_name="percentComplete", + ) + operation_status_result_read.resource_id = AAZStrType( + serialized_name="resourceId", + flags={"read_only": True}, + ) + operation_status_result_read.start_time = AAZStrType( + serialized_name="startTime", + ) + operation_status_result_read.status = AAZStrType( + flags={"required": True}, + ) + + operations = _schema_operation_status_result_read.operations + operations.Element = AAZObjectType() + cls._build_schema_operation_status_result_read(operations.Element) + + _schema.end_time = cls._schema_operation_status_result_read.end_time + _schema.error = cls._schema_operation_status_result_read.error + _schema.id = cls._schema_operation_status_result_read.id + _schema.name = cls._schema_operation_status_result_read.name + _schema.operations = cls._schema_operation_status_result_read.operations + _schema.percent_complete = cls._schema_operation_status_result_read.percent_complete + _schema.resource_id = cls._schema_operation_status_result_read.resource_id + _schema.start_time = cls._schema_operation_status_result_read.start_time + _schema.status = cls._schema_operation_status_result_read.status + + +__all__ = ["Shutdown"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_start.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_start.py new file mode 100644 index 00000000000..d67ca29dda6 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_start.py @@ -0,0 +1,288 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "large-instance start", +) +class Start(AAZCommand): + """The operation to start an Azure Large Instance (only for compute instances) + + :example: To start an Azure Large Instance + az large-instance start --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP --instance-name $INSTANCE_NAME + """ + + _aaz_info = { + "version": "2023-07-20-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.azurelargeinstance/azurelargeinstances/{}/start", "2023-07-20-preview"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_lro_poller(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.instance_name = AAZStrArg( + options=["-n", "--name", "--instance-name"], + help="Name of the AzureLargeInstance.", + required=True, + id_part="name", + fmt=AAZStrArgFormat( + pattern=".*", + ), + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + yield self.AzureLargeInstanceStart(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class AzureLargeInstanceStart(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [202]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200, + self.on_error, + lro_options={"final-state-via": "location"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200, + self.on_error, + lro_options={"final-state-via": "location"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureLargeInstance/azureLargeInstances/{azureLargeInstanceName}/start", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "azureLargeInstanceName", self.ctx.args.instance_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _StartHelper._build_schema_operation_status_result_read(cls._schema_on_200) + + return cls._schema_on_200 + + +class _StartHelper: + """Helper class for Start""" + + _schema_error_detail_read = None + + @classmethod + def _build_schema_error_detail_read(cls, _schema): + if cls._schema_error_detail_read is not None: + _schema.additional_info = cls._schema_error_detail_read.additional_info + _schema.code = cls._schema_error_detail_read.code + _schema.details = cls._schema_error_detail_read.details + _schema.message = cls._schema_error_detail_read.message + _schema.target = cls._schema_error_detail_read.target + return + + cls._schema_error_detail_read = _schema_error_detail_read = AAZObjectType() + + error_detail_read = _schema_error_detail_read + error_detail_read.additional_info = AAZListType( + serialized_name="additionalInfo", + flags={"read_only": True}, + ) + error_detail_read.code = AAZStrType( + flags={"read_only": True}, + ) + error_detail_read.details = AAZListType( + flags={"read_only": True}, + ) + error_detail_read.message = AAZStrType( + flags={"read_only": True}, + ) + error_detail_read.target = AAZStrType( + flags={"read_only": True}, + ) + + additional_info = _schema_error_detail_read.additional_info + additional_info.Element = AAZObjectType() + + _element = _schema_error_detail_read.additional_info.Element + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + details = _schema_error_detail_read.details + details.Element = AAZObjectType() + cls._build_schema_error_detail_read(details.Element) + + _schema.additional_info = cls._schema_error_detail_read.additional_info + _schema.code = cls._schema_error_detail_read.code + _schema.details = cls._schema_error_detail_read.details + _schema.message = cls._schema_error_detail_read.message + _schema.target = cls._schema_error_detail_read.target + + _schema_operation_status_result_read = None + + @classmethod + def _build_schema_operation_status_result_read(cls, _schema): + if cls._schema_operation_status_result_read is not None: + _schema.end_time = cls._schema_operation_status_result_read.end_time + _schema.error = cls._schema_operation_status_result_read.error + _schema.id = cls._schema_operation_status_result_read.id + _schema.name = cls._schema_operation_status_result_read.name + _schema.operations = cls._schema_operation_status_result_read.operations + _schema.percent_complete = cls._schema_operation_status_result_read.percent_complete + _schema.resource_id = cls._schema_operation_status_result_read.resource_id + _schema.start_time = cls._schema_operation_status_result_read.start_time + _schema.status = cls._schema_operation_status_result_read.status + return + + cls._schema_operation_status_result_read = _schema_operation_status_result_read = AAZObjectType() + + operation_status_result_read = _schema_operation_status_result_read + operation_status_result_read.end_time = AAZStrType( + serialized_name="endTime", + ) + operation_status_result_read.error = AAZObjectType() + cls._build_schema_error_detail_read(operation_status_result_read.error) + operation_status_result_read.id = AAZStrType() + operation_status_result_read.name = AAZStrType() + operation_status_result_read.operations = AAZListType() + operation_status_result_read.percent_complete = AAZFloatType( + serialized_name="percentComplete", + ) + operation_status_result_read.resource_id = AAZStrType( + serialized_name="resourceId", + flags={"read_only": True}, + ) + operation_status_result_read.start_time = AAZStrType( + serialized_name="startTime", + ) + operation_status_result_read.status = AAZStrType( + flags={"required": True}, + ) + + operations = _schema_operation_status_result_read.operations + operations.Element = AAZObjectType() + cls._build_schema_operation_status_result_read(operations.Element) + + _schema.end_time = cls._schema_operation_status_result_read.end_time + _schema.error = cls._schema_operation_status_result_read.error + _schema.id = cls._schema_operation_status_result_read.id + _schema.name = cls._schema_operation_status_result_read.name + _schema.operations = cls._schema_operation_status_result_read.operations + _schema.percent_complete = cls._schema_operation_status_result_read.percent_complete + _schema.resource_id = cls._schema_operation_status_result_read.resource_id + _schema.start_time = cls._schema_operation_status_result_read.start_time + _schema.status = cls._schema_operation_status_result_read.status + + +__all__ = ["Start"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_update.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_update.py new file mode 100644 index 00000000000..20dcbc1341d --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_instance/_update.py @@ -0,0 +1,340 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "large-instance update", +) +class Update(AAZCommand): + """Update the Tags field of an Azure Large Instance for the specified subscription, resource group, and instance name. + + :example: To add an Azure Large Instance tag + az large-instance update --subscription $SUBSCRIPTION_ID --instance-name=$INSTANCE_NAME --resource-group=$RESOURCE_GROUP --tags newKey=value + """ + + _aaz_info = { + "version": "2023-07-20-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.azurelargeinstance/azurelargeinstances/{}", "2023-07-20-preview"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.instance_name = AAZStrArg( + options=["-n", "--name", "--instance-name"], + help="Name of the AzureLargeInstance.", + required=True, + id_part="name", + fmt=AAZStrArgFormat( + pattern=".*", + ), + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "TagsParameter" + + _args_schema = cls._args_schema + _args_schema.tags = AAZDictArg( + options=["--tags"], + arg_group="TagsParameter", + help="Tags field of the AzureLargeInstance instance.", + ) + + tags = cls._args_schema.tags + tags.Element = AAZStrArg() + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.AzureLargeInstanceUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class AzureLargeInstanceUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureLargeInstance/azureLargeInstances/{azureLargeInstanceName}", + **self.url_parameters + ) + + @property + def method(self): + return "PATCH" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "azureLargeInstanceName", self.ctx.args.instance_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"required": True, "client_flatten": True}} + ) + _builder.set_prop("tags", AAZDictType, ".tags") + + tags = _builder.get(".tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + return self.serialize_content(_content_value) + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.tags = AAZDictType() + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.azure_large_instance_id = AAZStrType( + serialized_name="azureLargeInstanceId", + flags={"read_only": True}, + ) + properties.hardware_profile = AAZObjectType( + serialized_name="hardwareProfile", + ) + properties.hw_revision = AAZStrType( + serialized_name="hwRevision", + flags={"read_only": True}, + ) + properties.network_profile = AAZObjectType( + serialized_name="networkProfile", + ) + properties.os_profile = AAZObjectType( + serialized_name="osProfile", + ) + properties.partner_node_id = AAZStrType( + serialized_name="partnerNodeId", + ) + properties.power_state = AAZStrType( + serialized_name="powerState", + flags={"read_only": True}, + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.proximity_placement_group = AAZStrType( + serialized_name="proximityPlacementGroup", + flags={"read_only": True}, + ) + properties.storage_profile = AAZObjectType( + serialized_name="storageProfile", + ) + + hardware_profile = cls._schema_on_200.properties.hardware_profile + hardware_profile.azure_large_instance_size = AAZStrType( + serialized_name="azureLargeInstanceSize", + flags={"read_only": True}, + ) + hardware_profile.hardware_type = AAZStrType( + serialized_name="hardwareType", + flags={"read_only": True}, + ) + + network_profile = cls._schema_on_200.properties.network_profile + network_profile.circuit_id = AAZStrType( + serialized_name="circuitId", + flags={"read_only": True}, + ) + network_profile.network_interfaces = AAZListType( + serialized_name="networkInterfaces", + ) + + network_interfaces = cls._schema_on_200.properties.network_profile.network_interfaces + network_interfaces.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.network_profile.network_interfaces.Element + _element.ip_address = AAZStrType( + serialized_name="ipAddress", + ) + + os_profile = cls._schema_on_200.properties.os_profile + os_profile.computer_name = AAZStrType( + serialized_name="computerName", + ) + os_profile.os_type = AAZStrType( + serialized_name="osType", + flags={"read_only": True}, + ) + os_profile.ssh_public_key = AAZStrType( + serialized_name="sshPublicKey", + ) + os_profile.version = AAZStrType( + flags={"read_only": True}, + ) + + storage_profile = cls._schema_on_200.properties.storage_profile + storage_profile.nfs_ip_address = AAZStrType( + serialized_name="nfsIpAddress", + flags={"read_only": True}, + ) + storage_profile.os_disks = AAZListType( + serialized_name="osDisks", + ) + + os_disks = cls._schema_on_200.properties.storage_profile.os_disks + os_disks.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.storage_profile.os_disks.Element + _element.disk_size_gb = AAZIntType( + serialized_name="diskSizeGB", + ) + _element.lun = AAZIntType( + flags={"read_only": True}, + ) + _element.name = AAZStrType() + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _UpdateHelper: + """Helper class for Update""" + + +__all__ = ["Update"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/__cmd_group.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/__cmd_group.py new file mode 100644 index 00000000000..fb754595991 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "large-storage-instance", +) +class __CMDGroup(AAZCommandGroup): + """Handle Operations for Storage Azure Large Instances. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/__init__.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/__init__.py new file mode 100644 index 00000000000..bee768f7653 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/__init__.py @@ -0,0 +1,14 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._list import * +from ._show import * +from ._update import * diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/_list.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/_list.py new file mode 100644 index 00000000000..91540dc76c0 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/_list.py @@ -0,0 +1,413 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "large-storage-instance list", +) +class List(AAZCommand): + """List a list of AzureLargeStorageInstances in the specified subscription. The operations returns various properties of each Azure LargeStorage instance. + + :example: To list Azure Large Storage Instances in a subscription + az large-storage-instance list --subscription $SUBSCRIPTION_ID + + :example: To list Azure Large Storage Instances in a specific subscription and resource group + az azurelargestorageinstance list --subscription $SUBSCRIPTIONID --resource-group $RESOURCE_GROUP + """ + + _aaz_info = { + "version": "2023-07-20-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/providers/microsoft.azurelargeinstance/azurelargestorageinstances", "2023-07-20-preview"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.azurelargeinstance/azurelargestorageinstances", "2023-07-20-preview"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.resource_group = AAZResourceGroupNameArg() + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + condition_0 = has_value(self.ctx.args.resource_group) and has_value(self.ctx.subscription_id) + condition_1 = has_value(self.ctx.subscription_id) and has_value(self.ctx.args.resource_group) is not True + if condition_0: + self.AzureLargeStorageInstanceListByResourceGroup(ctx=self.ctx)() + if condition_1: + self.AzureLargeStorageInstanceListBySubscription(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class AzureLargeStorageInstanceListByResourceGroup(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureLargeInstance/azureLargeStorageInstances", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.location = AAZStrType( + flags={"required": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.tags = AAZDictType() + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.azure_large_storage_instance_unique_identifier = AAZStrType( + serialized_name="azureLargeStorageInstanceUniqueIdentifier", + ) + properties.storage_properties = AAZObjectType( + serialized_name="storageProperties", + ) + + storage_properties = cls._schema_on_200.value.Element.properties.storage_properties + storage_properties.generation = AAZStrType() + storage_properties.hardware_type = AAZStrType( + serialized_name="hardwareType", + ) + storage_properties.offering_type = AAZStrType( + serialized_name="offeringType", + ) + storage_properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + storage_properties.storage_billing_properties = AAZObjectType( + serialized_name="storageBillingProperties", + ) + storage_properties.storage_type = AAZStrType( + serialized_name="storageType", + ) + storage_properties.workload_type = AAZStrType( + serialized_name="workloadType", + ) + + storage_billing_properties = cls._schema_on_200.value.Element.properties.storage_properties.storage_billing_properties + storage_billing_properties.billing_mode = AAZStrType( + serialized_name="billingMode", + ) + storage_billing_properties.sku = AAZStrType() + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.value.Element.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + class AzureLargeStorageInstanceListBySubscription(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureLargeInstance/azureLargeStorageInstances", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.location = AAZStrType( + flags={"required": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.tags = AAZDictType() + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.azure_large_storage_instance_unique_identifier = AAZStrType( + serialized_name="azureLargeStorageInstanceUniqueIdentifier", + ) + properties.storage_properties = AAZObjectType( + serialized_name="storageProperties", + ) + + storage_properties = cls._schema_on_200.value.Element.properties.storage_properties + storage_properties.generation = AAZStrType() + storage_properties.hardware_type = AAZStrType( + serialized_name="hardwareType", + ) + storage_properties.offering_type = AAZStrType( + serialized_name="offeringType", + ) + storage_properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + storage_properties.storage_billing_properties = AAZObjectType( + serialized_name="storageBillingProperties", + ) + storage_properties.storage_type = AAZStrType( + serialized_name="storageType", + ) + storage_properties.workload_type = AAZStrType( + serialized_name="workloadType", + ) + + storage_billing_properties = cls._schema_on_200.value.Element.properties.storage_properties.storage_billing_properties + storage_billing_properties.billing_mode = AAZStrType( + serialized_name="billingMode", + ) + storage_billing_properties.sku = AAZStrType() + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.value.Element.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/_show.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/_show.py new file mode 100644 index 00000000000..9e49fe081f8 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/_show.py @@ -0,0 +1,245 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "large-storage-instance show", +) +class Show(AAZCommand): + """Get an Azure Large Storage instance for the specified subscription, resource group, and instance name. + + :example: To show details about a specific Azure Large Storage Instance + az large-storage-instance show --subscription $SUBSCRIPTION_ID --instance-name $INSTANCE_NAME --resource-group $RESOURCE_GROUP + """ + + _aaz_info = { + "version": "2023-07-20-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.azurelargeinstance/azurelargestorageinstances/{}", "2023-07-20-preview"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.instance_name = AAZStrArg( + options=["-n", "--name", "--instance-name"], + help="Name of the AzureLargeStorageInstance.", + required=True, + id_part="name", + fmt=AAZStrArgFormat( + pattern=".*", + ), + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.AzureLargeStorageInstanceGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class AzureLargeStorageInstanceGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureLargeInstance/azureLargeStorageInstances/{azureLargeStorageInstanceName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "azureLargeStorageInstanceName", self.ctx.args.instance_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.tags = AAZDictType() + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.azure_large_storage_instance_unique_identifier = AAZStrType( + serialized_name="azureLargeStorageInstanceUniqueIdentifier", + ) + properties.storage_properties = AAZObjectType( + serialized_name="storageProperties", + ) + + storage_properties = cls._schema_on_200.properties.storage_properties + storage_properties.generation = AAZStrType() + storage_properties.hardware_type = AAZStrType( + serialized_name="hardwareType", + ) + storage_properties.offering_type = AAZStrType( + serialized_name="offeringType", + ) + storage_properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + storage_properties.storage_billing_properties = AAZObjectType( + serialized_name="storageBillingProperties", + ) + storage_properties.storage_type = AAZStrType( + serialized_name="storageType", + ) + storage_properties.workload_type = AAZStrType( + serialized_name="workloadType", + ) + + storage_billing_properties = cls._schema_on_200.properties.storage_properties.storage_billing_properties + storage_billing_properties.billing_mode = AAZStrType( + serialized_name="billingMode", + ) + storage_billing_properties.sku = AAZStrType() + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/_update.py b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/_update.py new file mode 100644 index 00000000000..7a8460c0609 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/aaz/latest/large_storage_instance/_update.py @@ -0,0 +1,275 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "large-storage-instance update", +) +class Update(AAZCommand): + """Update the Tags field of a Azure Large Storage Instance for the specified subscription, resource group, and instance name. + + :example: To add an Azure Large Storage Instance tag + az large-storage-instance update --subscription $SUBSCRIPTION_ID --instance-name $INSTANCE_NAME --resource-group $RESOURCE_GROUP --tags newKey=value + """ + + _aaz_info = { + "version": "2023-07-20-preview", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.azurelargeinstance/azurelargestorageinstances/{}", "2023-07-20-preview"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.instance_name = AAZStrArg( + options=["-n", "--name", "--instance-name"], + help="Name of the AzureLargeStorageInstance.", + required=True, + id_part="name", + fmt=AAZStrArgFormat( + pattern=".*", + ), + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "TagsParameter" + + _args_schema = cls._args_schema + _args_schema.tags = AAZDictArg( + options=["--tags"], + arg_group="TagsParameter", + help="Tags field of the AzureLargeInstance instance.", + ) + + tags = cls._args_schema.tags + tags.Element = AAZStrArg() + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.AzureLargeStorageInstanceUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class AzureLargeStorageInstanceUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureLargeInstance/azureLargeStorageInstances/{azureLargeStorageInstanceName}", + **self.url_parameters + ) + + @property + def method(self): + return "PATCH" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "azureLargeStorageInstanceName", self.ctx.args.instance_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2023-07-20-preview", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"required": True, "client_flatten": True}} + ) + _builder.set_prop("tags", AAZDictType, ".tags") + + tags = _builder.get(".tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + return self.serialize_content(_content_value) + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.tags = AAZDictType() + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.azure_large_storage_instance_unique_identifier = AAZStrType( + serialized_name="azureLargeStorageInstanceUniqueIdentifier", + ) + properties.storage_properties = AAZObjectType( + serialized_name="storageProperties", + ) + + storage_properties = cls._schema_on_200.properties.storage_properties + storage_properties.generation = AAZStrType() + storage_properties.hardware_type = AAZStrType( + serialized_name="hardwareType", + ) + storage_properties.offering_type = AAZStrType( + serialized_name="offeringType", + ) + storage_properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + ) + storage_properties.storage_billing_properties = AAZObjectType( + serialized_name="storageBillingProperties", + ) + storage_properties.storage_type = AAZStrType( + serialized_name="storageType", + ) + storage_properties.workload_type = AAZStrType( + serialized_name="workloadType", + ) + + storage_billing_properties = cls._schema_on_200.properties.storage_properties.storage_billing_properties + storage_billing_properties.billing_mode = AAZStrType( + serialized_name="billingMode", + ) + storage_billing_properties.sku = AAZStrType() + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _UpdateHelper: + """Helper class for Update""" + + +__all__ = ["Update"] diff --git a/src/azurelargeinstance/azext_azurelargeinstance/azext_metadata.json b/src/azurelargeinstance/azext_azurelargeinstance/azext_metadata.json new file mode 100644 index 00000000000..24862c32571 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/azext_metadata.json @@ -0,0 +1,4 @@ +{ + "azext.isPreview": true, + "azext.minCliCoreVersion": "2.51.0" +} \ No newline at end of file diff --git a/src/azurelargeinstance/azext_azurelargeinstance/commands.py b/src/azurelargeinstance/azext_azurelargeinstance/commands.py new file mode 100644 index 00000000000..b0d842e4993 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/commands.py @@ -0,0 +1,15 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + +# from azure.cli.core.commands import CliCommandType + + +def load_command_table(self, _): # pylint: disable=unused-argument + pass diff --git a/src/azurelargeinstance/azext_azurelargeinstance/custom.py b/src/azurelargeinstance/azext_azurelargeinstance/custom.py new file mode 100644 index 00000000000..86df1e48ef5 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/custom.py @@ -0,0 +1,14 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + +from knack.log import get_logger + + +logger = get_logger(__name__) diff --git a/src/azurelargeinstance/azext_azurelargeinstance/tests/__init__.py b/src/azurelargeinstance/azext_azurelargeinstance/tests/__init__.py new file mode 100644 index 00000000000..5757aea3175 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/tests/__init__.py @@ -0,0 +1,6 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/__init__.py b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/__init__.py new file mode 100644 index 00000000000..5757aea3175 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/__init__.py @@ -0,0 +1,6 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargeinstances_in_resourcegroup.yaml b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargeinstances_in_resourcegroup.yaml new file mode 100644 index 00000000000..98d85a19206 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargeinstances_in_resourcegroup.yaml @@ -0,0 +1,44 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - large-instance list + Connection: + - keep-alive + ParameterSetName: + - --subscription --resource-group + User-Agent: + - AZURECLI/2.53.0 (AAZ) azsdk-python-core/1.26.0 Python/3.8.10 (Linux-5.15.90.1-microsoft-standard-WSL2-x86_64-with-glibc2.29) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/DSM05A-T100/providers/Microsoft.AzureLargeInstance/azureLargeInstances?api-version=2023-07-20-preview + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 14 Nov 2023 07:05:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +version: 1 diff --git a/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargeinstances_in_subscription.yaml b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargeinstances_in_subscription.yaml new file mode 100644 index 00000000000..6fd412f7629 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargeinstances_in_subscription.yaml @@ -0,0 +1,44 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - large-instance list + Connection: + - keep-alive + ParameterSetName: + - --subscription + User-Agent: + - AZURECLI/2.53.0 (AAZ) azsdk-python-core/1.26.0 Python/3.8.10 (Linux-5.15.90.1-microsoft-standard-WSL2-x86_64-with-glibc2.29) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.AzureLargeInstance/azureLargeInstances?api-version=2023-07-20-preview + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 14 Nov 2023 06:52:03 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +version: 1 diff --git a/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargestorageinstances_in_resourcegroup.yaml b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargestorageinstances_in_resourcegroup.yaml new file mode 100644 index 00000000000..0384d99aac5 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargestorageinstances_in_resourcegroup.yaml @@ -0,0 +1,44 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - large-storage-instance list + Connection: + - keep-alive + ParameterSetName: + - --subscription --resource-group + User-Agent: + - AZURECLI/2.53.0 (AAZ) azsdk-python-core/1.26.0 Python/3.8.10 (Linux-5.15.90.1-microsoft-standard-WSL2-x86_64-with-glibc2.29) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/DSM05A-T100/providers/Microsoft.AzureLargeInstance/azureLargeStorageInstances?api-version=2023-07-20-preview + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 14 Nov 2023 07:05:15 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +version: 1 diff --git a/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargestorageinstances_in_subscription.yaml b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargestorageinstances_in_subscription.yaml new file mode 100644 index 00000000000..51d87333217 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/recordings/test_list_azurelargestorageinstances_in_subscription.yaml @@ -0,0 +1,44 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - large-storage-instance list + Connection: + - keep-alive + ParameterSetName: + - --subscription + User-Agent: + - AZURECLI/2.53.0 (AAZ) azsdk-python-core/1.26.0 Python/3.8.10 (Linux-5.15.90.1-microsoft-standard-WSL2-x86_64-with-glibc2.29) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.AzureLargeInstance/azureLargeStorageInstances?api-version=2023-07-20-preview + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 14 Nov 2023 06:52:02 GMT + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +version: 1 diff --git a/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/test_azurelargeinstance.py b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/test_azurelargeinstance.py new file mode 100644 index 00000000000..b959fb3c8d3 --- /dev/null +++ b/src/azurelargeinstance/azext_azurelargeinstance/tests/latest/test_azurelargeinstance.py @@ -0,0 +1,29 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +from azure.cli.testsdk import * + + +class AzurelargeinstanceScenario(ScenarioTest): + def test_list_azurelargeinstances_in_subscription(self): + self.cmd('az large-instance list') + + def test_list_azurelargeinstances_in_resourcegroup(self): + self.kwargs.update({ + 'resource_group': 'DSM05A-T100' + }) + + self.cmd('az large-instance list --resource-group {resource_group}') + + def test_list_azurelargestorageinstances_in_subscription(self): + self.cmd('az large-storage-instance list') + + def test_list_azurelargestorageinstances_in_resourcegroup(self): + self.kwargs.update({ + 'resource_group': 'DSM05A-T100' + }) + self.cmd('az large-storage-instance list --resource-group {resource_group}') diff --git a/src/azurelargeinstance/setup.cfg b/src/azurelargeinstance/setup.cfg new file mode 100644 index 00000000000..2fdd96e5d39 --- /dev/null +++ b/src/azurelargeinstance/setup.cfg @@ -0,0 +1 @@ +#setup.cfg \ No newline at end of file diff --git a/src/azurelargeinstance/setup.py b/src/azurelargeinstance/setup.py new file mode 100644 index 00000000000..bca2c95ad69 --- /dev/null +++ b/src/azurelargeinstance/setup.py @@ -0,0 +1,49 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +from codecs import open +from setuptools import setup, find_packages + + +# HISTORY.rst entry. +VERSION = '1.0.0b1' + +# The full list of classifiers is available at +# https://pypi.python.org/pypi?%3Aaction=list_classifiers +CLASSIFIERS = [ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'Intended Audience :: System Administrators', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'License :: OSI Approved :: MIT License', +] + +DEPENDENCIES = [] + +with open('README.md', 'r', encoding='utf-8') as f: + README = f.read() +with open('HISTORY.rst', 'r', encoding='utf-8') as f: + HISTORY = f.read() + +setup( + name='azurelargeinstance', + version=VERSION, + description='Microsoft Azure Command-Line Tools Azurelargeinstance Extension.', + long_description=README + '\n\n' + HISTORY, + license='MIT', + author='Microsoft Corporation', + author_email='azpycli@microsoft.com', + url='https://github.com/Azure/azure-cli-extensions/tree/main/src/azurelargeinstance', + classifiers=CLASSIFIERS, + packages=find_packages(exclude=["tests"]), + package_data={'azext_azurelargeinstance': ['azext_metadata.json']}, + install_requires=DEPENDENCIES +) diff --git a/src/service_name.json b/src/service_name.json index 290d7af21ad..0ef9770fb6a 100644 --- a/src/service_name.json +++ b/src/service_name.json @@ -808,5 +808,15 @@ "Command": "az network-analytics", "AzureServiceName": "Azure Operator Insights - Network Analytics", "URL": "https://learn.microsoft.com/en-us/azure/operator-insights/" + }, + { + "Command": "az large-instance", + "AzureServiceName": "Azure Large Instance", + "URL": "https://learn.microsoft.com/en-us/azure/azure-large-instances/" + }, + { + "Command": "az large-storage-instance", + "AzureServiceName": "Azure Large Instance", + "URL": "https://learn.microsoft.com/en-us/azure/azure-large-instances/" } ]