diff --git a/src/k8s-runtime/HISTORY.rst b/src/k8s-runtime/HISTORY.rst index c95c686dbba..f5f9a417ffd 100644 --- a/src/k8s-runtime/HISTORY.rst +++ b/src/k8s-runtime/HISTORY.rst @@ -3,6 +3,12 @@ Release History =============== +2.0.0 +++++++ +* Use stable ARM API version `2024-08-01` +* [BREAKING CHANGE] Remove the deprecated `storage class` command set. It is only used internally, and thus should not affect customers. +* Add `update` command to the `load balancer` command set. + 1.0.4 ++++++ * Replace `azure-graphrbac` sdk with MS Graph sdk diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/__init__.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/__init__.py index f6acc11aa4e..73afe73faa4 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/__init__.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/__init__.py @@ -1,10 +1,10 @@ -# -------------------------------------------------------------------------------------------- -# 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 - +# -------------------------------------------------------------------------------------------- +# 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 + diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/__cmd_group.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/__cmd_group.py index cda840e1894..6511cc5702b 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/__cmd_group.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/__cmd_group.py @@ -1,23 +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( - "k8s-runtime", -) -class __CMDGroup(AAZCommandGroup): - """Manage Arc Kubernetes Runtime resources - """ - pass - - -__all__ = ["__CMDGroup"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime", +) +class __CMDGroup(AAZCommandGroup): + """Manage Arc Kubernetes Runtime resources + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/__init__.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/__init__.py index 5a9d61963d6..709a5170d90 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/__init__.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/__init__.py @@ -1,11 +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: skip-file -# flake8: noqa - -from .__cmd_group import * +# -------------------------------------------------------------------------------------------- +# 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 * diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/__cmd_group.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/__cmd_group.py similarity index 83% rename from src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/__cmd_group.py rename to src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/__cmd_group.py index 5316536876b..fca139976d5 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/__cmd_group.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/__cmd_group.py @@ -1,24 +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( - "k8s-runtime storage-class", - is_preview=True, -) -class __CMDGroup(AAZCommandGroup): - """Manage storage classes of Arc Kubernetes clusters - """ - pass - - -__all__ = ["__CMDGroup"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bfd-profile", +) +class __CMDGroup(AAZCommandGroup): + """Manage Bfd Profile + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/__init__.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/__init__.py similarity index 97% rename from src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/__init__.py rename to src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/__init__.py index db73033039b..b0465fd67f0 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/__init__.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/__init__.py @@ -1,17 +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 ._create import * -from ._delete import * -from ._list import * -from ._show import * -from ._update import * -from ._wait import * +# -------------------------------------------------------------------------------------------- +# 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 ._create import * +from ._delete import * +from ._list import * +from ._show import * +from ._update import * +from ._wait import * diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_create.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_create.py new file mode 100644 index 00000000000..7591577a63f --- /dev/null +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_create.py @@ -0,0 +1,308 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bfd-profile create", +) +class Create(AAZCommand): + """Create a BfdProfile + + :example: Create a Bfd Profile + az k8s-runtime bfd-profile create --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --bfd-profile-name testprofile --receive-interval 300 --transmit-interval 300 --detect-multiplier 3 --echo-interval 50 --echo-mode Disabled --passive-mode Disabled --minimum-ttl 254 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bfdprofiles/{}", "2024-08-01"], + ] + } + + 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.bfd_profile_name = AAZStrArg( + options=["--bfd-profile-name"], + help="The name of the BfdProfile", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.detect_multiplier = AAZIntArg( + options=["--detect-multiplier"], + arg_group="Properties", + help="Detect multiplier", + ) + _args_schema.echo_interval = AAZIntArg( + options=["--echo-interval"], + arg_group="Properties", + help="Echo interval in milliseconds", + ) + _args_schema.echo_mode = AAZStrArg( + options=["--echo-mode"], + arg_group="Properties", + help="Echo mode", + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, + ) + _args_schema.minimum_ttl = AAZIntArg( + options=["--minimum-ttl"], + arg_group="Properties", + help="Minimum TTL", + ) + _args_schema.passive_mode = AAZStrArg( + options=["--passive-mode"], + arg_group="Properties", + help="Passive mode", + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, + ) + _args_schema.receive_interval = AAZIntArg( + options=["--receive-interval"], + arg_group="Properties", + help="Receive interval in milliseconds", + ) + _args_schema.transmit_interval = AAZIntArg( + options=["--transmit-interval"], + arg_group="Properties", + help="Transmit interval in milliseconds", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + yield self.BfdProfilesCreateOrUpdate(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 BfdProfilesCreateOrUpdate(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_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bfdProfiles/{bfdProfileName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "bfdProfileName", self.ctx.args.bfd_profile_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("detectMultiplier", AAZIntType, ".detect_multiplier") + properties.set_prop("echoInterval", AAZIntType, ".echo_interval") + properties.set_prop("echoMode", AAZStrType, ".echo_mode") + properties.set_prop("minimumTtl", AAZIntType, ".minimum_ttl") + properties.set_prop("passiveMode", AAZStrType, ".passive_mode") + properties.set_prop("receiveInterval", AAZIntType, ".receive_interval") + properties.set_prop("transmitInterval", AAZIntType, ".transmit_interval") + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + + _schema_on_200_201 = cls._schema_on_200_201 + _schema_on_200_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.properties = AAZObjectType() + _schema_on_200_201.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200_201.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200_201.properties + properties.detect_multiplier = AAZIntType( + serialized_name="detectMultiplier", + ) + properties.echo_interval = AAZIntType( + serialized_name="echoInterval", + ) + properties.echo_mode = AAZStrType( + serialized_name="echoMode", + ) + properties.minimum_ttl = AAZIntType( + serialized_name="minimumTtl", + ) + properties.passive_mode = AAZStrType( + serialized_name="passiveMode", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.receive_interval = AAZIntType( + serialized_name="receiveInterval", + ) + properties.transmit_interval = AAZIntType( + serialized_name="transmitInterval", + ) + + system_data = cls._schema_on_200_201.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", + ) + + return cls._schema_on_200_201 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_delete.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_delete.py similarity index 77% rename from src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_delete.py rename to src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_delete.py index 27ae0fa972a..0fad167781c 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_delete.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_delete.py @@ -1,141 +1,140 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime service delete", - is_preview=True, - confirmation="Are you sure you want to perform this operation?", -) -class Delete(AAZCommand): - """Delete a Service - - :example: Delete storage class service - az k8s-runtime service delete --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --service-name storageclass - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/services/{}", "2024-03-01"], - ] - } - - def _handler(self, command_args): - super()._handler(command_args) - self._execute_operations() - return None - - _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_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - _args_schema.service_name = AAZStrArg( - options=["--service-name"], - help="The name of the the service", - required=True, - fmt=AAZStrArgFormat( - pattern="^(storageclass|networking)$", - ), - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.ServicesDelete(ctx=self.ctx)() - self.post_operations() - - @register_callback - def pre_operations(self): - pass - - @register_callback - def post_operations(self): - pass - - class ServicesDelete(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) - if session.http_response.status_code in [204]: - return self.on_204(session) - - return self.on_error(session.http_response) - - @property - def url(self): - return self.client.format_url( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/services/{serviceName}", - **self.url_parameters - ) - - @property - def method(self): - return "DELETE" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - **self.serialize_url_param( - "serviceName", self.ctx.args.service_name, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - required=True, - ), - } - return parameters - - def on_200(self, session): - pass - - def on_204(self, session): - pass - - -class _DeleteHelper: - """Helper class for Delete""" - - -__all__ = ["Delete"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bfd-profile delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Delete a BfdProfile + + :example: Delete a Bfd Profile + az k8s-runtime bfd-profile delete --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --bfd-profile-name testprofile + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bfdprofiles/{}", "2024-08-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return None + + _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.bfd_profile_name = AAZStrArg( + options=["--bfd-profile-name"], + help="The name of the BfdProfile", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BfdProfilesDelete(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + class BfdProfilesDelete(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) + if session.http_response.status_code in [204]: + return self.on_204(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bfdProfiles/{bfdProfileName}", + **self.url_parameters + ) + + @property + def method(self): + return "DELETE" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "bfdProfileName", self.ctx.args.bfd_profile_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + def on_204(self, session): + pass + + +class _DeleteHelper: + """Helper class for Delete""" + + +__all__ = ["Delete"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_list.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_list.py similarity index 78% rename from src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_list.py rename to src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_list.py index 71ef1158bb6..c05f97f7cb5 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_list.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_list.py @@ -1,213 +1,227 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime service list", - is_preview=True, -) -class List(AAZCommand): - """List Services by parent - - :example: List all services for a cluster - az k8s-runtime service list --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/services", "2024-03-01"], - ] - } - - 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_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.ServicesList(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 ServicesList(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/services", - **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( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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( - flags={"required": True}, - ) - - value = cls._schema_on_200.value - value.Element = AAZObjectType() - - _element = cls._schema_on_200.value.Element - _element.id = AAZStrType( - flags={"read_only": 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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.value.Element.properties - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.rp_object_id = AAZStrType( - serialized_name="rpObjectId", - flags={"read_only": True}, - ) - - 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", - ) - - return cls._schema_on_200 - - -class _ListHelper: - """Helper class for List""" - - -__all__ = ["List"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bfd-profile list", +) +class List(AAZCommand): + """List BfdProfile resources by parent + + :example: List all Bfd Profiles + az k8s-runtime bfd-profile list --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bfdprofiles", "2024-08-01"], + ] + } + + 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_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BfdProfilesListByParent(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 BfdProfilesListByParent(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bfdProfiles", + **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( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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( + flags={"required": True}, + ) + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType() + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.detect_multiplier = AAZIntType( + serialized_name="detectMultiplier", + ) + properties.echo_interval = AAZIntType( + serialized_name="echoInterval", + ) + properties.echo_mode = AAZStrType( + serialized_name="echoMode", + ) + properties.minimum_ttl = AAZIntType( + serialized_name="minimumTtl", + ) + properties.passive_mode = AAZStrType( + serialized_name="passiveMode", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.receive_interval = AAZIntType( + serialized_name="receiveInterval", + ) + properties.transmit_interval = AAZIntType( + serialized_name="transmitInterval", + ) + + 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", + ) + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_create.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_show.py similarity index 62% rename from src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_create.py rename to src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_show.py index 7b9e46f4853..8ce6f93da16 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_create.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_show.py @@ -1,225 +1,226 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime service create", - is_preview=True, -) -class Create(AAZCommand): - """Create a Service - - :example: Create a storageclass service - az k8s-runtime service create --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --service-name storageclass - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/services/{}", "2024-03-01"], - ] - } - - 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.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - _args_schema.service_name = AAZStrArg( - options=["--service-name"], - help="The name of the the service", - required=True, - fmt=AAZStrArgFormat( - pattern="^(storageclass|networking)$", - ), - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.ServicesCreateOrUpdate(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 ServicesCreateOrUpdate(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, 201]: - return self.on_200_201(session) - - return self.on_error(session.http_response) - - @property - def url(self): - return self.client.format_url( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/services/{serviceName}", - **self.url_parameters - ) - - @property - def method(self): - return "PUT" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - **self.serialize_url_param( - "serviceName", self.ctx.args.service_name, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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}} - ) - - return self.serialize_content(_content_value) - - def on_200_201(self, session): - data = self.deserialize_http_content(session) - self.ctx.set_var( - "instance", - data, - schema_builder=self._build_schema_on_200_201 - ) - - _schema_on_200_201 = None - - @classmethod - def _build_schema_on_200_201(cls): - if cls._schema_on_200_201 is not None: - return cls._schema_on_200_201 - - cls._schema_on_200_201 = AAZObjectType() - - _schema_on_200_201 = cls._schema_on_200_201 - _schema_on_200_201.id = AAZStrType( - flags={"read_only": True}, - ) - _schema_on_200_201.name = AAZStrType( - flags={"read_only": True}, - ) - _schema_on_200_201.properties = AAZObjectType( - flags={"client_flatten": True}, - ) - _schema_on_200_201.system_data = AAZObjectType( - serialized_name="systemData", - flags={"read_only": True}, - ) - _schema_on_200_201.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200_201.properties - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.rp_object_id = AAZStrType( - serialized_name="rpObjectId", - flags={"read_only": True}, - ) - - system_data = cls._schema_on_200_201.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", - ) - - return cls._schema_on_200_201 - - -class _CreateHelper: - """Helper class for Create""" - - -__all__ = ["Create"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bfd-profile show", +) +class Show(AAZCommand): + """Get a BfdProfile + + :example: Get a Bfd Profile + az k8s-runtime bfd-profile show --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --bfd-profile-name testprofile + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bfdprofiles/{}", "2024-08-01"], + ] + } + + 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.bfd_profile_name = AAZStrArg( + options=["--bfd-profile-name"], + help="The name of the BfdProfile", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BfdProfilesGet(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 BfdProfilesGet(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bfdProfiles/{bfdProfileName}", + **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( + "bfdProfileName", self.ctx.args.bfd_profile_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.detect_multiplier = AAZIntType( + serialized_name="detectMultiplier", + ) + properties.echo_interval = AAZIntType( + serialized_name="echoInterval", + ) + properties.echo_mode = AAZStrType( + serialized_name="echoMode", + ) + properties.minimum_ttl = AAZIntType( + serialized_name="minimumTtl", + ) + properties.passive_mode = AAZStrType( + serialized_name="passiveMode", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.receive_interval = AAZIntType( + serialized_name="receiveInterval", + ) + properties.transmit_interval = AAZIntType( + serialized_name="transmitInterval", + ) + + 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", + ) + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_update.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_update.py new file mode 100644 index 00000000000..df66ccbdf87 --- /dev/null +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_update.py @@ -0,0 +1,452 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bfd-profile update", +) +class Update(AAZCommand): + """Update a BfdProfile + + :example: Update a Bfd Profile + az k8s-runtime bfd-profile update --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --bfd-profile-name testprofile --receive-interval 300 --transmit-interval 300 --detect-multiplier 3 --echo-interval 50 --echo-mode Disabled --passive-mode Disabled --minimum-ttl 254 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bfdprofiles/{}", "2024-08-01"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + AZ_SUPPORT_GENERIC_UPDATE = 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.bfd_profile_name = AAZStrArg( + options=["--bfd-profile-name"], + help="The name of the BfdProfile", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.detect_multiplier = AAZIntArg( + options=["--detect-multiplier"], + arg_group="Properties", + help="Detect multiplier", + nullable=True, + ) + _args_schema.echo_interval = AAZIntArg( + options=["--echo-interval"], + arg_group="Properties", + help="Echo interval in milliseconds", + nullable=True, + ) + _args_schema.echo_mode = AAZStrArg( + options=["--echo-mode"], + arg_group="Properties", + help="Echo mode", + nullable=True, + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, + ) + _args_schema.minimum_ttl = AAZIntArg( + options=["--minimum-ttl"], + arg_group="Properties", + help="Minimum TTL", + nullable=True, + ) + _args_schema.passive_mode = AAZStrArg( + options=["--passive-mode"], + arg_group="Properties", + help="Passive mode", + nullable=True, + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, + ) + _args_schema.receive_interval = AAZIntArg( + options=["--receive-interval"], + arg_group="Properties", + help="Receive interval in milliseconds", + nullable=True, + ) + _args_schema.transmit_interval = AAZIntArg( + options=["--transmit-interval"], + arg_group="Properties", + help="Transmit interval in milliseconds", + nullable=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BfdProfilesGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + yield self.BfdProfilesCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class BfdProfilesGet(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bfdProfiles/{bfdProfileName}", + **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( + "bfdProfileName", self.ctx.args.bfd_profile_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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() + _UpdateHelper._build_schema_bfd_profile_read(cls._schema_on_200) + + return cls._schema_on_200 + + class BfdProfilesCreateOrUpdate(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_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bfdProfiles/{bfdProfileName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "bfdProfileName", self.ctx.args.bfd_profile_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + _UpdateHelper._build_schema_bfd_profile_read(cls._schema_on_200_201) + + return cls._schema_on_200_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("detectMultiplier", AAZIntType, ".detect_multiplier") + properties.set_prop("echoInterval", AAZIntType, ".echo_interval") + properties.set_prop("echoMode", AAZStrType, ".echo_mode") + properties.set_prop("minimumTtl", AAZIntType, ".minimum_ttl") + properties.set_prop("passiveMode", AAZStrType, ".passive_mode") + properties.set_prop("receiveInterval", AAZIntType, ".receive_interval") + properties.set_prop("transmitInterval", AAZIntType, ".transmit_interval") + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + _schema_bfd_profile_read = None + + @classmethod + def _build_schema_bfd_profile_read(cls, _schema): + if cls._schema_bfd_profile_read is not None: + _schema.id = cls._schema_bfd_profile_read.id + _schema.name = cls._schema_bfd_profile_read.name + _schema.properties = cls._schema_bfd_profile_read.properties + _schema.system_data = cls._schema_bfd_profile_read.system_data + _schema.type = cls._schema_bfd_profile_read.type + return + + cls._schema_bfd_profile_read = _schema_bfd_profile_read = AAZObjectType() + + bfd_profile_read = _schema_bfd_profile_read + bfd_profile_read.id = AAZStrType( + flags={"read_only": True}, + ) + bfd_profile_read.name = AAZStrType( + flags={"read_only": True}, + ) + bfd_profile_read.properties = AAZObjectType() + bfd_profile_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + bfd_profile_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_bfd_profile_read.properties + properties.detect_multiplier = AAZIntType( + serialized_name="detectMultiplier", + ) + properties.echo_interval = AAZIntType( + serialized_name="echoInterval", + ) + properties.echo_mode = AAZStrType( + serialized_name="echoMode", + ) + properties.minimum_ttl = AAZIntType( + serialized_name="minimumTtl", + ) + properties.passive_mode = AAZStrType( + serialized_name="passiveMode", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.receive_interval = AAZIntType( + serialized_name="receiveInterval", + ) + properties.transmit_interval = AAZIntType( + serialized_name="transmitInterval", + ) + + system_data = _schema_bfd_profile_read.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", + ) + + _schema.id = cls._schema_bfd_profile_read.id + _schema.name = cls._schema_bfd_profile_read.name + _schema.properties = cls._schema_bfd_profile_read.properties + _schema.system_data = cls._schema_bfd_profile_read.system_data + _schema.type = cls._schema_bfd_profile_read.type + + +__all__ = ["Update"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_show.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_wait.py similarity index 75% rename from src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_show.py rename to src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_wait.py index a74245a96b7..77207b01a8f 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/_show.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bfd_profile/_wait.py @@ -1,212 +1,222 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime service show", - is_preview=True, -) -class Show(AAZCommand): - """Get a Service - - :example: Show storageclass service - az k8s-runtime service show --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --service-name storageclass - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/services/{}", "2024-03-01"], - ] - } - - 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.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - _args_schema.service_name = AAZStrArg( - options=["--service-name"], - help="The name of the the service", - required=True, - fmt=AAZStrArgFormat( - pattern="^(storageclass|networking)$", - ), - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.ServicesGet(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 ServicesGet(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/services/{serviceName}", - **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( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - **self.serialize_url_param( - "serviceName", self.ctx.args.service_name, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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.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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.properties - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.rp_object_id = AAZStrType( - serialized_name="rpObjectId", - flags={"read_only": True}, - ) - - 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", - ) - - return cls._schema_on_200 - - -class _ShowHelper: - """Helper class for Show""" - - -__all__ = ["Show"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bfd-profile wait", +) +class Wait(AAZWaitCommand): + """Place the CLI in a waiting state until a condition is met. + """ + + _aaz_info = { + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bfdprofiles/{}", "2024-08-01"], + ] + } + + 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.bfd_profile_name = AAZStrArg( + options=["--bfd-profile-name"], + help="The name of the BfdProfile", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BfdProfilesGet(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=False) + return result + + class BfdProfilesGet(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bfdProfiles/{bfdProfileName}", + **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( + "bfdProfileName", self.ctx.args.bfd_profile_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.detect_multiplier = AAZIntType( + serialized_name="detectMultiplier", + ) + properties.echo_interval = AAZIntType( + serialized_name="echoInterval", + ) + properties.echo_mode = AAZStrType( + serialized_name="echoMode", + ) + properties.minimum_ttl = AAZIntType( + serialized_name="minimumTtl", + ) + properties.passive_mode = AAZStrType( + serialized_name="passiveMode", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.receive_interval = AAZIntType( + serialized_name="receiveInterval", + ) + properties.transmit_interval = AAZIntType( + serialized_name="transmitInterval", + ) + + 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", + ) + + return cls._schema_on_200 + + +class _WaitHelper: + """Helper class for Wait""" + + +__all__ = ["Wait"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/__cmd_group.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/__cmd_group.py index 8acfb26a087..d68d63c0568 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/__cmd_group.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/__cmd_group.py @@ -1,23 +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( - "k8s-runtime bgp-peer", -) -class __CMDGroup(AAZCommandGroup): - """Manage BGP peers of Arc Kubernetes clusters - """ - pass - - -__all__ = ["__CMDGroup"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bgp-peer", +) +class __CMDGroup(AAZCommandGroup): + """Manage BGP peers of Arc Kubernetes clusters + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/__init__.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/__init__.py index db73033039b..b0465fd67f0 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/__init__.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/__init__.py @@ -1,17 +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 ._create import * -from ._delete import * -from ._list import * -from ._show import * -from ._update import * -from ._wait import * +# -------------------------------------------------------------------------------------------- +# 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 ._create import * +from ._delete import * +from ._list import * +from ._show import * +from ._update import * +from ._wait import * diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_create.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_create.py index 9ae77c5fb4a..bba2dc1826b 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_create.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_create.py @@ -1,275 +1,363 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime bgp-peer create", -) -class Create(AAZCommand): - """Create a BgpPeer - - :example: Create a BGP Peer - az k8s-runtime bgp-peer create --bgp-peer-name bgpPeer1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --my-asn 10000 --peer-asn 20000 --peer-address 192.168.50.1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-03-01"], - ] - } - - 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.bgp_peer_name = AAZStrArg( - options=["--bgp-peer-name"], - help="The name of the BgpPeer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - - # define Arg Group "Properties" - - _args_schema = cls._args_schema - _args_schema.my_asn = AAZIntArg( - options=["--my-asn"], - arg_group="Properties", - help="My ASN", - ) - _args_schema.peer_address = AAZStrArg( - options=["--peer-address"], - arg_group="Properties", - help="Peer Address", - ) - _args_schema.peer_asn = AAZIntArg( - options=["--peer-asn"], - arg_group="Properties", - help="Peer ASN", - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - yield self.BgpPeersCreateOrUpdate(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 BgpPeersCreateOrUpdate(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_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - if session.http_response.status_code in [200, 201]: - return self.client.build_lro_polling( - self.ctx.args.no_wait, - session, - self.on_200_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - - return self.on_error(session.http_response) - - @property - def url(self): - return self.client.format_url( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", - **self.url_parameters - ) - - @property - def method(self): - return "PUT" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "bgpPeerName", self.ctx.args.bgp_peer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}}) - - properties = _builder.get(".properties") - if properties is not None: - properties.set_prop("myAsn", AAZIntType, ".my_asn", typ_kwargs={"flags": {"required": True}}) - properties.set_prop("peerAddress", AAZStrType, ".peer_address", typ_kwargs={"flags": {"required": True}}) - properties.set_prop("peerAsn", AAZIntType, ".peer_asn", typ_kwargs={"flags": {"required": True}}) - - return self.serialize_content(_content_value) - - def on_200_201(self, session): - data = self.deserialize_http_content(session) - self.ctx.set_var( - "instance", - data, - schema_builder=self._build_schema_on_200_201 - ) - - _schema_on_200_201 = None - - @classmethod - def _build_schema_on_200_201(cls): - if cls._schema_on_200_201 is not None: - return cls._schema_on_200_201 - - cls._schema_on_200_201 = AAZObjectType() - - _schema_on_200_201 = cls._schema_on_200_201 - _schema_on_200_201.id = AAZStrType( - flags={"read_only": True}, - ) - _schema_on_200_201.name = AAZStrType( - flags={"read_only": True}, - ) - _schema_on_200_201.properties = AAZObjectType( - flags={"client_flatten": True}, - ) - _schema_on_200_201.system_data = AAZObjectType( - serialized_name="systemData", - flags={"read_only": True}, - ) - _schema_on_200_201.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200_201.properties - properties.my_asn = AAZIntType( - serialized_name="myAsn", - flags={"required": True}, - ) - properties.peer_address = AAZStrType( - serialized_name="peerAddress", - flags={"required": True}, - ) - properties.peer_asn = AAZIntType( - serialized_name="peerAsn", - flags={"required": True}, - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - - system_data = cls._schema_on_200_201.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", - ) - - return cls._schema_on_200_201 - - -class _CreateHelper: - """Helper class for Create""" - - -__all__ = ["Create"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bgp-peer create", +) +class Create(AAZCommand): + """Create a BgpPeer + + :example: Create a BGP Peer + az k8s-runtime bgp-peer create --bgp-peer-name bgpPeer1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --my-asn 10000 --peer-asn 20000 --peer-address 192.168.50.1 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-08-01"], + ] + } + + 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.bgp_peer_name = AAZStrArg( + options=["--bgp-peer-name"], + help="The name of the BgpPeer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.bfd_profile = AAZStrArg( + options=["--bfd-profile"], + arg_group="Properties", + help="BFD Profile", + ) + _args_schema.bgp_multi_hop = AAZStrArg( + options=["--bgp-multi-hop"], + arg_group="Properties", + help="eBGP multiple hop", + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, + ) + _args_schema.hold_time = AAZStrArg( + options=["--hold-time"], + arg_group="Properties", + help="Hold time, per RFC4271", + ) + _args_schema.keep_alive_time = AAZStrArg( + options=["--keep-alive-time"], + arg_group="Properties", + help="Keepalive time, per RFC4271", + ) + _args_schema.my_asn = AAZIntArg( + options=["--my-asn"], + arg_group="Properties", + help="My ASN", + ) + _args_schema.node_selector = AAZListArg( + options=["--node-selector"], + arg_group="Properties", + help="A dynamic label mapping to select related nodes to peer with. For instance, if you want to create a BGP peer only for nodes with label \"a=b\", then please specify {\"a\": \"b\"} in the field.", + ) + _args_schema.peer_address = AAZStrArg( + options=["--peer-address"], + arg_group="Properties", + help="Peer Address", + ) + _args_schema.peer_asn = AAZIntArg( + options=["--peer-asn"], + arg_group="Properties", + help="Peer ASN", + ) + _args_schema.peer_port = AAZIntArg( + options=["--peer-port"], + arg_group="Properties", + help="Peer BGP port", + ) + + node_selector = cls._args_schema.node_selector + node_selector.Element = AAZObjectArg() + + _element = cls._args_schema.node_selector.Element + _element.name = AAZStrArg( + options=["name"], + help="Label name", + required=True, + ) + _element.value = AAZStrArg( + options=["value"], + help="Label value", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + yield self.BgpPeersCreateOrUpdate(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 BgpPeersCreateOrUpdate(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_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "bgpPeerName", self.ctx.args.bgp_peer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("bfdProfile", AAZStrType, ".bfd_profile") + properties.set_prop("bgpMultiHop", AAZStrType, ".bgp_multi_hop") + properties.set_prop("holdTime", AAZStrType, ".hold_time") + properties.set_prop("keepAliveTime", AAZStrType, ".keep_alive_time") + properties.set_prop("myAsn", AAZIntType, ".my_asn", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("nodeSelector", AAZListType, ".node_selector") + properties.set_prop("peerAddress", AAZStrType, ".peer_address", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("peerAsn", AAZIntType, ".peer_asn", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("peerPort", AAZIntType, ".peer_port") + + node_selector = _builder.get(".properties.nodeSelector") + if node_selector is not None: + node_selector.set_elements(AAZObjectType, ".") + + _elements = _builder.get(".properties.nodeSelector[]") + if _elements is not None: + _elements.set_prop("name", AAZStrType, ".name", typ_kwargs={"flags": {"required": True}}) + _elements.set_prop("value", AAZStrType, ".value", typ_kwargs={"flags": {"required": True}}) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + + _schema_on_200_201 = cls._schema_on_200_201 + _schema_on_200_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.properties = AAZObjectType() + _schema_on_200_201.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200_201.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200_201.properties + properties.bfd_profile = AAZStrType( + serialized_name="bfdProfile", + ) + properties.bgp_multi_hop = AAZStrType( + serialized_name="bgpMultiHop", + ) + properties.hold_time = AAZStrType( + serialized_name="holdTime", + ) + properties.keep_alive_time = AAZStrType( + serialized_name="keepAliveTime", + ) + properties.my_asn = AAZIntType( + serialized_name="myAsn", + flags={"required": True}, + ) + properties.node_selector = AAZListType( + serialized_name="nodeSelector", + ) + properties.peer_address = AAZStrType( + serialized_name="peerAddress", + flags={"required": True}, + ) + properties.peer_asn = AAZIntType( + serialized_name="peerAsn", + flags={"required": True}, + ) + properties.peer_port = AAZIntType( + serialized_name="peerPort", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + node_selector = cls._schema_on_200_201.properties.node_selector + node_selector.Element = AAZObjectType() + + _element = cls._schema_on_200_201.properties.node_selector.Element + _element.name = AAZStrType( + flags={"required": True}, + ) + _element.value = AAZStrType( + flags={"required": True}, + ) + + system_data = cls._schema_on_200_201.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", + ) + + return cls._schema_on_200_201 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_delete.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_delete.py index 80ca104af8d..69c0ee2597b 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_delete.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_delete.py @@ -1,140 +1,140 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime bgp-peer delete", - confirmation="Are you sure you want to perform this operation?", -) -class Delete(AAZCommand): - """Delete a BgpPeer - - :example: Delete a BGP peer - az k8s-runtime bgp-peer delete --bgp-peer-name bgpPeer1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-03-01"], - ] - } - - def _handler(self, command_args): - super()._handler(command_args) - self._execute_operations() - return None - - _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.bgp_peer_name = AAZStrArg( - options=["--bgp-peer-name"], - help="The name of the BgpPeer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.BgpPeersDelete(ctx=self.ctx)() - self.post_operations() - - @register_callback - def pre_operations(self): - pass - - @register_callback - def post_operations(self): - pass - - class BgpPeersDelete(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) - if session.http_response.status_code in [204]: - return self.on_204(session) - - return self.on_error(session.http_response) - - @property - def url(self): - return self.client.format_url( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", - **self.url_parameters - ) - - @property - def method(self): - return "DELETE" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "bgpPeerName", self.ctx.args.bgp_peer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - required=True, - ), - } - return parameters - - def on_200(self, session): - pass - - def on_204(self, session): - pass - - -class _DeleteHelper: - """Helper class for Delete""" - - -__all__ = ["Delete"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bgp-peer delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Delete a BgpPeer + + :example: Delete a BGP peer + az k8s-runtime bgp-peer delete --bgp-peer-name bgpPeer1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-08-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return None + + _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.bgp_peer_name = AAZStrArg( + options=["--bgp-peer-name"], + help="The name of the BgpPeer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BgpPeersDelete(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + class BgpPeersDelete(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) + if session.http_response.status_code in [204]: + return self.on_204(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", + **self.url_parameters + ) + + @property + def method(self): + return "DELETE" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "bgpPeerName", self.ctx.args.bgp_peer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + def on_204(self, session): + pass + + +class _DeleteHelper: + """Helper class for Delete""" + + +__all__ = ["Delete"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_list.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_list.py index 6199c9bd61f..026f4a08438 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_list.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_list.py @@ -1,220 +1,247 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime bgp-peer list", -) -class List(AAZCommand): - """List BgpPeer resources by parent - - :example: List all BGP peers in a cluster - az k8s-runtime bgp-peer list --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers", "2024-03-01"], - ] - } - - 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_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.BgpPeersList(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 BgpPeersList(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers", - **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( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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( - flags={"required": True}, - ) - - value = cls._schema_on_200.value - value.Element = AAZObjectType() - - _element = cls._schema_on_200.value.Element - _element.id = AAZStrType( - flags={"read_only": 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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.value.Element.properties - properties.my_asn = AAZIntType( - serialized_name="myAsn", - flags={"required": True}, - ) - properties.peer_address = AAZStrType( - serialized_name="peerAddress", - flags={"required": True}, - ) - properties.peer_asn = AAZIntType( - serialized_name="peerAsn", - flags={"required": True}, - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - - 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", - ) - - return cls._schema_on_200 - - -class _ListHelper: - """Helper class for List""" - - -__all__ = ["List"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bgp-peer list", +) +class List(AAZCommand): + """List BgpPeer resources by parent + + :example: List all BGP peers in a cluster + az k8s-runtime bgp-peer list --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers", "2024-08-01"], + ] + } + + 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_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BgpPeersListByParent(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 BgpPeersListByParent(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers", + **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( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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( + flags={"required": True}, + ) + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType() + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.bfd_profile = AAZStrType( + serialized_name="bfdProfile", + ) + properties.bgp_multi_hop = AAZStrType( + serialized_name="bgpMultiHop", + ) + properties.hold_time = AAZStrType( + serialized_name="holdTime", + ) + properties.keep_alive_time = AAZStrType( + serialized_name="keepAliveTime", + ) + properties.my_asn = AAZIntType( + serialized_name="myAsn", + flags={"required": True}, + ) + properties.node_selector = AAZListType( + serialized_name="nodeSelector", + ) + properties.peer_address = AAZStrType( + serialized_name="peerAddress", + flags={"required": True}, + ) + properties.peer_asn = AAZIntType( + serialized_name="peerAsn", + flags={"required": True}, + ) + properties.peer_port = AAZIntType( + serialized_name="peerPort", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + node_selector = cls._schema_on_200.value.Element.properties.node_selector + node_selector.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element.properties.node_selector.Element + _element.name = AAZStrType( + flags={"required": True}, + ) + _element.value = AAZStrType( + flags={"required": True}, + ) + + 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", + ) + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_show.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_show.py index 99e98fce20e..fe650026910 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_show.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_show.py @@ -1,219 +1,246 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime bgp-peer show", -) -class Show(AAZCommand): - """Get a BgpPeer - - :example: Get a BGP peer - az k8s-runtime bgp-peer show --bgp-peer-name bgpPeer1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-03-01"], - ] - } - - 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.bgp_peer_name = AAZStrArg( - options=["--bgp-peer-name"], - help="The name of the BgpPeer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.BgpPeersGet(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 BgpPeersGet(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", - **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( - "bgpPeerName", self.ctx.args.bgp_peer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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.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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.properties - properties.my_asn = AAZIntType( - serialized_name="myAsn", - flags={"required": True}, - ) - properties.peer_address = AAZStrType( - serialized_name="peerAddress", - flags={"required": True}, - ) - properties.peer_asn = AAZIntType( - serialized_name="peerAsn", - flags={"required": True}, - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - - 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", - ) - - return cls._schema_on_200 - - -class _ShowHelper: - """Helper class for Show""" - - -__all__ = ["Show"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bgp-peer show", +) +class Show(AAZCommand): + """Get a BgpPeer + + :example: Get a BGP peer + az k8s-runtime bgp-peer show --bgp-peer-name bgpPeer1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-08-01"], + ] + } + + 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.bgp_peer_name = AAZStrArg( + options=["--bgp-peer-name"], + help="The name of the BgpPeer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BgpPeersGet(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 BgpPeersGet(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", + **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( + "bgpPeerName", self.ctx.args.bgp_peer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.bfd_profile = AAZStrType( + serialized_name="bfdProfile", + ) + properties.bgp_multi_hop = AAZStrType( + serialized_name="bgpMultiHop", + ) + properties.hold_time = AAZStrType( + serialized_name="holdTime", + ) + properties.keep_alive_time = AAZStrType( + serialized_name="keepAliveTime", + ) + properties.my_asn = AAZIntType( + serialized_name="myAsn", + flags={"required": True}, + ) + properties.node_selector = AAZListType( + serialized_name="nodeSelector", + ) + properties.peer_address = AAZStrType( + serialized_name="peerAddress", + flags={"required": True}, + ) + properties.peer_asn = AAZIntType( + serialized_name="peerAsn", + flags={"required": True}, + ) + properties.peer_port = AAZIntType( + serialized_name="peerPort", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + node_selector = cls._schema_on_200.properties.node_selector + node_selector.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.node_selector.Element + _element.name = AAZStrType( + flags={"required": True}, + ) + _element.value = AAZStrType( + flags={"required": True}, + ) + + 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", + ) + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_update.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_update.py index 9c0d285043b..94527f4f06d 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_update.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_update.py @@ -1,383 +1,506 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime bgp-peer update", -) -class Update(AAZCommand): - """Update a BgpPeer - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-03-01"], - ] - } - - AZ_SUPPORT_NO_WAIT = True - - AZ_SUPPORT_GENERIC_UPDATE = 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.bgp_peer_name = AAZStrArg( - options=["--bgp-peer-name"], - help="The name of the BgpPeer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.BgpPeersGet(ctx=self.ctx)() - self.pre_instance_update(self.ctx.vars.instance) - self.InstanceUpdateByJson(ctx=self.ctx)() - self.InstanceUpdateByGeneric(ctx=self.ctx)() - self.post_instance_update(self.ctx.vars.instance) - yield self.BgpPeersCreateOrUpdate(ctx=self.ctx)() - self.post_operations() - - @register_callback - def pre_operations(self): - pass - - @register_callback - def post_operations(self): - pass - - @register_callback - def pre_instance_update(self, instance): - pass - - @register_callback - def post_instance_update(self, instance): - pass - - def _output(self, *args, **kwargs): - result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) - return result - - class BgpPeersGet(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", - **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( - "bgpPeerName", self.ctx.args.bgp_peer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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() - _UpdateHelper._build_schema_bgp_peer_read(cls._schema_on_200) - - return cls._schema_on_200 - - class BgpPeersCreateOrUpdate(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_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - if session.http_response.status_code in [200, 201]: - return self.client.build_lro_polling( - self.ctx.args.no_wait, - session, - self.on_200_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - - return self.on_error(session.http_response) - - @property - def url(self): - return self.client.format_url( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", - **self.url_parameters - ) - - @property - def method(self): - return "PUT" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "bgpPeerName", self.ctx.args.bgp_peer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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, - value=self.ctx.vars.instance, - ) - - return self.serialize_content(_content_value) - - def on_200_201(self, session): - data = self.deserialize_http_content(session) - self.ctx.set_var( - "instance", - data, - schema_builder=self._build_schema_on_200_201 - ) - - _schema_on_200_201 = None - - @classmethod - def _build_schema_on_200_201(cls): - if cls._schema_on_200_201 is not None: - return cls._schema_on_200_201 - - cls._schema_on_200_201 = AAZObjectType() - _UpdateHelper._build_schema_bgp_peer_read(cls._schema_on_200_201) - - return cls._schema_on_200_201 - - class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): - - def __call__(self, *args, **kwargs): - self._update_instance(self.ctx.vars.instance) - - def _update_instance(self, instance): - _instance_value, _builder = self.new_content_builder( - self.ctx.args, - value=instance, - typ=AAZObjectType - ) - - return _instance_value - - class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): - - def __call__(self, *args, **kwargs): - self._update_instance_by_generic( - self.ctx.vars.instance, - self.ctx.generic_update_args - ) - - -class _UpdateHelper: - """Helper class for Update""" - - _schema_bgp_peer_read = None - - @classmethod - def _build_schema_bgp_peer_read(cls, _schema): - if cls._schema_bgp_peer_read is not None: - _schema.id = cls._schema_bgp_peer_read.id - _schema.name = cls._schema_bgp_peer_read.name - _schema.properties = cls._schema_bgp_peer_read.properties - _schema.system_data = cls._schema_bgp_peer_read.system_data - _schema.type = cls._schema_bgp_peer_read.type - return - - cls._schema_bgp_peer_read = _schema_bgp_peer_read = AAZObjectType() - - bgp_peer_read = _schema_bgp_peer_read - bgp_peer_read.id = AAZStrType( - flags={"read_only": True}, - ) - bgp_peer_read.name = AAZStrType( - flags={"read_only": True}, - ) - bgp_peer_read.properties = AAZObjectType( - flags={"client_flatten": True}, - ) - bgp_peer_read.system_data = AAZObjectType( - serialized_name="systemData", - flags={"read_only": True}, - ) - bgp_peer_read.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = _schema_bgp_peer_read.properties - properties.my_asn = AAZIntType( - serialized_name="myAsn", - flags={"required": True}, - ) - properties.peer_address = AAZStrType( - serialized_name="peerAddress", - flags={"required": True}, - ) - properties.peer_asn = AAZIntType( - serialized_name="peerAsn", - flags={"required": True}, - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - - system_data = _schema_bgp_peer_read.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", - ) - - _schema.id = cls._schema_bgp_peer_read.id - _schema.name = cls._schema_bgp_peer_read.name - _schema.properties = cls._schema_bgp_peer_read.properties - _schema.system_data = cls._schema_bgp_peer_read.system_data - _schema.type = cls._schema_bgp_peer_read.type - - -__all__ = ["Update"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bgp-peer update", +) +class Update(AAZCommand): + """Update a BgpPeer + + :example: Update a BGP peer + az k8s-runtime bgp-peer update --bgp-peer-name bgpPeer1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --my-asn 10000 --peer-asn 20000 --peer-address 192.168.50.1 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-08-01"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + AZ_SUPPORT_GENERIC_UPDATE = 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.bgp_peer_name = AAZStrArg( + options=["--bgp-peer-name"], + help="The name of the BgpPeer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.bfd_profile = AAZStrArg( + options=["--bfd-profile"], + arg_group="Properties", + help="BFD Profile", + nullable=True, + ) + _args_schema.bgp_multi_hop = AAZStrArg( + options=["--bgp-multi-hop"], + arg_group="Properties", + help="eBGP multiple hop", + nullable=True, + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, + ) + _args_schema.hold_time = AAZStrArg( + options=["--hold-time"], + arg_group="Properties", + help="Hold time, per RFC4271", + nullable=True, + ) + _args_schema.keep_alive_time = AAZStrArg( + options=["--keep-alive-time"], + arg_group="Properties", + help="Keepalive time, per RFC4271", + nullable=True, + ) + _args_schema.my_asn = AAZIntArg( + options=["--my-asn"], + arg_group="Properties", + help="My ASN", + ) + _args_schema.node_selector = AAZListArg( + options=["--node-selector"], + arg_group="Properties", + help="A dynamic label mapping to select related nodes to peer with. For instance, if you want to create a BGP peer only for nodes with label \"a=b\", then please specify {\"a\": \"b\"} in the field.", + nullable=True, + ) + _args_schema.peer_address = AAZStrArg( + options=["--peer-address"], + arg_group="Properties", + help="Peer Address", + ) + _args_schema.peer_asn = AAZIntArg( + options=["--peer-asn"], + arg_group="Properties", + help="Peer ASN", + ) + _args_schema.peer_port = AAZIntArg( + options=["--peer-port"], + arg_group="Properties", + help="Peer BGP port", + nullable=True, + ) + + node_selector = cls._args_schema.node_selector + node_selector.Element = AAZObjectArg( + nullable=True, + ) + + _element = cls._args_schema.node_selector.Element + _element.name = AAZStrArg( + options=["name"], + help="Label name", + ) + _element.value = AAZStrArg( + options=["value"], + help="Label value", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BgpPeersGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + yield self.BgpPeersCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class BgpPeersGet(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", + **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( + "bgpPeerName", self.ctx.args.bgp_peer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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() + _UpdateHelper._build_schema_bgp_peer_read(cls._schema_on_200) + + return cls._schema_on_200 + + class BgpPeersCreateOrUpdate(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_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "bgpPeerName", self.ctx.args.bgp_peer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + _UpdateHelper._build_schema_bgp_peer_read(cls._schema_on_200_201) + + return cls._schema_on_200_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("bfdProfile", AAZStrType, ".bfd_profile") + properties.set_prop("bgpMultiHop", AAZStrType, ".bgp_multi_hop") + properties.set_prop("holdTime", AAZStrType, ".hold_time") + properties.set_prop("keepAliveTime", AAZStrType, ".keep_alive_time") + properties.set_prop("myAsn", AAZIntType, ".my_asn", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("nodeSelector", AAZListType, ".node_selector") + properties.set_prop("peerAddress", AAZStrType, ".peer_address", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("peerAsn", AAZIntType, ".peer_asn", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("peerPort", AAZIntType, ".peer_port") + + node_selector = _builder.get(".properties.nodeSelector") + if node_selector is not None: + node_selector.set_elements(AAZObjectType, ".") + + _elements = _builder.get(".properties.nodeSelector[]") + if _elements is not None: + _elements.set_prop("name", AAZStrType, ".name", typ_kwargs={"flags": {"required": True}}) + _elements.set_prop("value", AAZStrType, ".value", typ_kwargs={"flags": {"required": True}}) + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + _schema_bgp_peer_read = None + + @classmethod + def _build_schema_bgp_peer_read(cls, _schema): + if cls._schema_bgp_peer_read is not None: + _schema.id = cls._schema_bgp_peer_read.id + _schema.name = cls._schema_bgp_peer_read.name + _schema.properties = cls._schema_bgp_peer_read.properties + _schema.system_data = cls._schema_bgp_peer_read.system_data + _schema.type = cls._schema_bgp_peer_read.type + return + + cls._schema_bgp_peer_read = _schema_bgp_peer_read = AAZObjectType() + + bgp_peer_read = _schema_bgp_peer_read + bgp_peer_read.id = AAZStrType( + flags={"read_only": True}, + ) + bgp_peer_read.name = AAZStrType( + flags={"read_only": True}, + ) + bgp_peer_read.properties = AAZObjectType() + bgp_peer_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + bgp_peer_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_bgp_peer_read.properties + properties.bfd_profile = AAZStrType( + serialized_name="bfdProfile", + ) + properties.bgp_multi_hop = AAZStrType( + serialized_name="bgpMultiHop", + ) + properties.hold_time = AAZStrType( + serialized_name="holdTime", + ) + properties.keep_alive_time = AAZStrType( + serialized_name="keepAliveTime", + ) + properties.my_asn = AAZIntType( + serialized_name="myAsn", + flags={"required": True}, + ) + properties.node_selector = AAZListType( + serialized_name="nodeSelector", + ) + properties.peer_address = AAZStrType( + serialized_name="peerAddress", + flags={"required": True}, + ) + properties.peer_asn = AAZIntType( + serialized_name="peerAsn", + flags={"required": True}, + ) + properties.peer_port = AAZIntType( + serialized_name="peerPort", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + node_selector = _schema_bgp_peer_read.properties.node_selector + node_selector.Element = AAZObjectType() + + _element = _schema_bgp_peer_read.properties.node_selector.Element + _element.name = AAZStrType( + flags={"required": True}, + ) + _element.value = AAZStrType( + flags={"required": True}, + ) + + system_data = _schema_bgp_peer_read.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", + ) + + _schema.id = cls._schema_bgp_peer_read.id + _schema.name = cls._schema_bgp_peer_read.name + _schema.properties = cls._schema_bgp_peer_read.properties + _schema.system_data = cls._schema_bgp_peer_read.system_data + _schema.type = cls._schema_bgp_peer_read.type + + +__all__ = ["Update"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_wait.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_wait.py index 5f04b8e328e..5fa69322cb0 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_wait.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/bgp_peer/_wait.py @@ -1,215 +1,242 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime bgp-peer wait", -) -class Wait(AAZWaitCommand): - """Place the CLI in a waiting state until a condition is met. - """ - - _aaz_info = { - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-03-01"], - ] - } - - 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.bgp_peer_name = AAZStrArg( - options=["--bgp-peer-name"], - help="The name of the BgpPeer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.BgpPeersGet(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=False) - return result - - class BgpPeersGet(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", - **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( - "bgpPeerName", self.ctx.args.bgp_peer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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.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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.properties - properties.my_asn = AAZIntType( - serialized_name="myAsn", - flags={"required": True}, - ) - properties.peer_address = AAZStrType( - serialized_name="peerAddress", - flags={"required": True}, - ) - properties.peer_asn = AAZIntType( - serialized_name="peerAsn", - flags={"required": True}, - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - - 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", - ) - - return cls._schema_on_200 - - -class _WaitHelper: - """Helper class for Wait""" - - -__all__ = ["Wait"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime bgp-peer wait", +) +class Wait(AAZWaitCommand): + """Place the CLI in a waiting state until a condition is met. + """ + + _aaz_info = { + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/bgppeers/{}", "2024-08-01"], + ] + } + + 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.bgp_peer_name = AAZStrArg( + options=["--bgp-peer-name"], + help="The name of the BgpPeer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.BgpPeersGet(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=False) + return result + + class BgpPeersGet(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/bgpPeers/{bgpPeerName}", + **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( + "bgpPeerName", self.ctx.args.bgp_peer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.bfd_profile = AAZStrType( + serialized_name="bfdProfile", + ) + properties.bgp_multi_hop = AAZStrType( + serialized_name="bgpMultiHop", + ) + properties.hold_time = AAZStrType( + serialized_name="holdTime", + ) + properties.keep_alive_time = AAZStrType( + serialized_name="keepAliveTime", + ) + properties.my_asn = AAZIntType( + serialized_name="myAsn", + flags={"required": True}, + ) + properties.node_selector = AAZListType( + serialized_name="nodeSelector", + ) + properties.peer_address = AAZStrType( + serialized_name="peerAddress", + flags={"required": True}, + ) + properties.peer_asn = AAZIntType( + serialized_name="peerAsn", + flags={"required": True}, + ) + properties.peer_port = AAZIntType( + serialized_name="peerPort", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + node_selector = cls._schema_on_200.properties.node_selector + node_selector.Element = AAZObjectType() + + _element = cls._schema_on_200.properties.node_selector.Element + _element.name = AAZStrType( + flags={"required": True}, + ) + _element.value = AAZStrType( + flags={"required": True}, + ) + + 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", + ) + + return cls._schema_on_200 + + +class _WaitHelper: + """Helper class for Wait""" + + +__all__ = ["Wait"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/__cmd_group.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/__cmd_group.py index ab630675f9f..3ae09f426fc 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/__cmd_group.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/__cmd_group.py @@ -1,23 +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( - "k8s-runtime load-balancer", -) -class __CMDGroup(AAZCommandGroup): - """Manage load balancers of Arc Kubernetes clusters - """ - pass - - -__all__ = ["__CMDGroup"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime load-balancer", +) +class __CMDGroup(AAZCommandGroup): + """Manage load balancers of Arc Kubernetes clusters + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/__init__.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/__init__.py index db73033039b..b0465fd67f0 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/__init__.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/__init__.py @@ -1,17 +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 ._create import * -from ._delete import * -from ._list import * -from ._show import * -from ._update import * -from ._wait import * +# -------------------------------------------------------------------------------------------- +# 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 ._create import * +from ._delete import * +from ._list import * +from ._show import * +from ._update import * +from ._wait import * diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_create.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_create.py index 2b2cd5ef8f7..ce0d675feaa 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_create.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_create.py @@ -1,313 +1,328 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime load-balancer create", -) -class Create(AAZCommand): - """Create a LoadBalancer - - :example: Create a load balancer - az k8s-runtime load-balancer create --load-balancer-name testlb1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --addresses "192.168.50.1/32" --advertise-mode ARP --service-selector "" - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-03-01"], - ] - } - - 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.load_balancer_name = AAZStrArg( - options=["--load-balancer-name"], - help="The name of the LoadBalancer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - - # define Arg Group "Properties" - - _args_schema = cls._args_schema - _args_schema.addresses = AAZListArg( - options=["--addresses"], - arg_group="Properties", - help="IP Range", - ) - _args_schema.advertise_mode = AAZStrArg( - options=["--advertise-mode"], - arg_group="Properties", - help="Advertise Mode", - enum={"ARP": "ARP", "BGP": "BGP", "Both": "Both"}, - ) - _args_schema.bgp_peers = AAZListArg( - options=["--bgp-peers"], - arg_group="Properties", - help="The list of BGP peers it should advertise to. Null or empty means to advertise to all peers.", - ) - _args_schema.service_selector = AAZDictArg( - options=["--service-selector"], - arg_group="Properties", - help="A dynamic label mapping to select related services. For instance, if you want to create a load balancer only for services with label \"a=b\", then please specify {\"a\": \"b\"} in the field.", - ) - - addresses = cls._args_schema.addresses - addresses.Element = AAZStrArg() - - bgp_peers = cls._args_schema.bgp_peers - bgp_peers.Element = AAZStrArg() - - service_selector = cls._args_schema.service_selector - service_selector.Element = AAZStrArg() - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - yield self.LoadBalancersCreateOrUpdate(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 LoadBalancersCreateOrUpdate(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_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - if session.http_response.status_code in [200, 201]: - return self.client.build_lro_polling( - self.ctx.args.no_wait, - session, - self.on_200_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - - return self.on_error(session.http_response) - - @property - def url(self): - return self.client.format_url( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", - **self.url_parameters - ) - - @property - def method(self): - return "PUT" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "loadBalancerName", self.ctx.args.load_balancer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}}) - - properties = _builder.get(".properties") - if properties is not None: - properties.set_prop("addresses", AAZListType, ".addresses", typ_kwargs={"flags": {"required": True}}) - properties.set_prop("advertiseMode", AAZStrType, ".advertise_mode", typ_kwargs={"flags": {"required": True}}) - properties.set_prop("bgpPeers", AAZListType, ".bgp_peers") - properties.set_prop("serviceSelector", AAZDictType, ".service_selector") - - addresses = _builder.get(".properties.addresses") - if addresses is not None: - addresses.set_elements(AAZStrType, ".") - - bgp_peers = _builder.get(".properties.bgpPeers") - if bgp_peers is not None: - bgp_peers.set_elements(AAZStrType, ".") - - service_selector = _builder.get(".properties.serviceSelector") - if service_selector is not None: - service_selector.set_elements(AAZStrType, ".") - - return self.serialize_content(_content_value) - - def on_200_201(self, session): - data = self.deserialize_http_content(session) - self.ctx.set_var( - "instance", - data, - schema_builder=self._build_schema_on_200_201 - ) - - _schema_on_200_201 = None - - @classmethod - def _build_schema_on_200_201(cls): - if cls._schema_on_200_201 is not None: - return cls._schema_on_200_201 - - cls._schema_on_200_201 = AAZObjectType() - - _schema_on_200_201 = cls._schema_on_200_201 - _schema_on_200_201.id = AAZStrType( - flags={"read_only": True}, - ) - _schema_on_200_201.name = AAZStrType( - flags={"read_only": True}, - ) - _schema_on_200_201.properties = AAZObjectType( - flags={"client_flatten": True}, - ) - _schema_on_200_201.system_data = AAZObjectType( - serialized_name="systemData", - flags={"read_only": True}, - ) - _schema_on_200_201.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200_201.properties - properties.addresses = AAZListType( - flags={"required": True}, - ) - properties.advertise_mode = AAZStrType( - serialized_name="advertiseMode", - flags={"required": True}, - ) - properties.bgp_peers = AAZListType( - serialized_name="bgpPeers", - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.service_selector = AAZDictType( - serialized_name="serviceSelector", - ) - - addresses = cls._schema_on_200_201.properties.addresses - addresses.Element = AAZStrType() - - bgp_peers = cls._schema_on_200_201.properties.bgp_peers - bgp_peers.Element = AAZStrType() - - service_selector = cls._schema_on_200_201.properties.service_selector - service_selector.Element = AAZStrType() - - system_data = cls._schema_on_200_201.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", - ) - - return cls._schema_on_200_201 - - -class _CreateHelper: - """Helper class for Create""" - - -__all__ = ["Create"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime load-balancer create", +) +class Create(AAZCommand): + """Create a LoadBalancer + + :example: Create a load balancer + az k8s-runtime load-balancer create --load-balancer-name testlb1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --addresses "192.168.50.1/32" --advertise-mode ARP --service-selector "" + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-08-01"], + ] + } + + 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.load_balancer_name = AAZStrArg( + options=["--load-balancer-name"], + help="The name of the LoadBalancer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.addresses = AAZListArg( + options=["--addresses"], + arg_group="Properties", + help="IP Range", + ) + _args_schema.advertise_mode = AAZStrArg( + options=["--advertise-mode"], + arg_group="Properties", + help="Advertise Mode", + enum={"ARP": "ARP", "BGP": "BGP", "Both": "Both"}, + ) + _args_schema.bgp_peers = AAZListArg( + options=["--bgp-peers"], + arg_group="Properties", + help="The list of BGP peers it should advertise to. Null or empty means to advertise to all peers.", + ) + _args_schema.communities = AAZListArg( + options=["--communities"], + arg_group="Properties", + help="BGP Communities", + ) + _args_schema.service_selector = AAZDictArg( + options=["--service-selector"], + arg_group="Properties", + help="A dynamic label mapping to select related services. For instance, if you want to create a load balancer only for services with label \"a=b\", then please specify {\"a\": \"b\"} in the field.", + ) + + addresses = cls._args_schema.addresses + addresses.Element = AAZStrArg() + + bgp_peers = cls._args_schema.bgp_peers + bgp_peers.Element = AAZStrArg() + + communities = cls._args_schema.communities + communities.Element = AAZStrArg() + + service_selector = cls._args_schema.service_selector + service_selector.Element = AAZStrArg() + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + yield self.LoadBalancersCreateOrUpdate(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 LoadBalancersCreateOrUpdate(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_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "loadBalancerName", self.ctx.args.load_balancer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("addresses", AAZListType, ".addresses", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("advertiseMode", AAZStrType, ".advertise_mode", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("bgpPeers", AAZListType, ".bgp_peers") + properties.set_prop("communities", AAZListType, ".communities") + properties.set_prop("serviceSelector", AAZDictType, ".service_selector") + + addresses = _builder.get(".properties.addresses") + if addresses is not None: + addresses.set_elements(AAZStrType, ".") + + bgp_peers = _builder.get(".properties.bgpPeers") + if bgp_peers is not None: + bgp_peers.set_elements(AAZStrType, ".") + + communities = _builder.get(".properties.communities") + if communities is not None: + communities.set_elements(AAZStrType, ".") + + service_selector = _builder.get(".properties.serviceSelector") + if service_selector is not None: + service_selector.set_elements(AAZStrType, ".") + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + + _schema_on_200_201 = cls._schema_on_200_201 + _schema_on_200_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.properties = AAZObjectType() + _schema_on_200_201.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200_201.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200_201.properties + properties.addresses = AAZListType( + flags={"required": True}, + ) + properties.advertise_mode = AAZStrType( + serialized_name="advertiseMode", + flags={"required": True}, + ) + properties.bgp_peers = AAZListType( + serialized_name="bgpPeers", + ) + properties.communities = AAZListType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.service_selector = AAZDictType( + serialized_name="serviceSelector", + ) + + addresses = cls._schema_on_200_201.properties.addresses + addresses.Element = AAZStrType() + + bgp_peers = cls._schema_on_200_201.properties.bgp_peers + bgp_peers.Element = AAZStrType() + + communities = cls._schema_on_200_201.properties.communities + communities.Element = AAZStrType() + + service_selector = cls._schema_on_200_201.properties.service_selector + service_selector.Element = AAZStrType() + + system_data = cls._schema_on_200_201.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", + ) + + return cls._schema_on_200_201 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_delete.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_delete.py index cf21d6f32d6..1d1bf399f51 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_delete.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_delete.py @@ -1,140 +1,140 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime load-balancer delete", - confirmation="Are you sure you want to perform this operation?", -) -class Delete(AAZCommand): - """Delete a LoadBalancer - - :example: Delete a load balancer - az k8s-runtime load-balancer delete --load-balancer-name testlb1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-03-01"], - ] - } - - def _handler(self, command_args): - super()._handler(command_args) - self._execute_operations() - return None - - _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.load_balancer_name = AAZStrArg( - options=["--load-balancer-name"], - help="The name of the LoadBalancer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.LoadBalancersDelete(ctx=self.ctx)() - self.post_operations() - - @register_callback - def pre_operations(self): - pass - - @register_callback - def post_operations(self): - pass - - class LoadBalancersDelete(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) - if session.http_response.status_code in [204]: - return self.on_204(session) - - return self.on_error(session.http_response) - - @property - def url(self): - return self.client.format_url( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", - **self.url_parameters - ) - - @property - def method(self): - return "DELETE" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "loadBalancerName", self.ctx.args.load_balancer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - required=True, - ), - } - return parameters - - def on_200(self, session): - pass - - def on_204(self, session): - pass - - -class _DeleteHelper: - """Helper class for Delete""" - - -__all__ = ["Delete"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime load-balancer delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Delete a LoadBalancer + + :example: Delete a load balancer + az k8s-runtime load-balancer delete --load-balancer-name testlb1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-08-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return None + + _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.load_balancer_name = AAZStrArg( + options=["--load-balancer-name"], + help="The name of the LoadBalancer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.LoadBalancersDelete(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + class LoadBalancersDelete(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) + if session.http_response.status_code in [204]: + return self.on_204(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", + **self.url_parameters + ) + + @property + def method(self): + return "DELETE" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "loadBalancerName", self.ctx.args.load_balancer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + def on_204(self, session): + pass + + +class _DeleteHelper: + """Helper class for Delete""" + + +__all__ = ["Delete"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_list.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_list.py index 399522e70fc..b68a9738dbe 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_list.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_list.py @@ -1,230 +1,232 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime load-balancer list", -) -class List(AAZCommand): - """List LoadBalancer resources by parent - - :example: List all load balancers in a cluster - az k8s-runtime load-balancer list --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers", "2024-03-01"], - ] - } - - 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_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.LoadBalancersList(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 LoadBalancersList(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers", - **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( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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( - flags={"required": True}, - ) - - value = cls._schema_on_200.value - value.Element = AAZObjectType() - - _element = cls._schema_on_200.value.Element - _element.id = AAZStrType( - flags={"read_only": 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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.value.Element.properties - properties.addresses = AAZListType( - flags={"required": True}, - ) - properties.advertise_mode = AAZStrType( - serialized_name="advertiseMode", - flags={"required": True}, - ) - properties.bgp_peers = AAZListType( - serialized_name="bgpPeers", - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.service_selector = AAZDictType( - serialized_name="serviceSelector", - ) - - addresses = cls._schema_on_200.value.Element.properties.addresses - addresses.Element = AAZStrType() - - bgp_peers = cls._schema_on_200.value.Element.properties.bgp_peers - bgp_peers.Element = AAZStrType() - - service_selector = cls._schema_on_200.value.Element.properties.service_selector - service_selector.Element = 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", - ) - - return cls._schema_on_200 - - -class _ListHelper: - """Helper class for List""" - - -__all__ = ["List"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime load-balancer list", +) +class List(AAZCommand): + """List LoadBalancer resources by parent + + :example: List all load balancers in a cluster + az k8s-runtime load-balancer list --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers", "2024-08-01"], + ] + } + + 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_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.LoadBalancersListByParent(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 LoadBalancersListByParent(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers", + **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( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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( + flags={"required": True}, + ) + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType() + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.addresses = AAZListType( + flags={"required": True}, + ) + properties.advertise_mode = AAZStrType( + serialized_name="advertiseMode", + flags={"required": True}, + ) + properties.bgp_peers = AAZListType( + serialized_name="bgpPeers", + ) + properties.communities = AAZListType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.service_selector = AAZDictType( + serialized_name="serviceSelector", + ) + + addresses = cls._schema_on_200.value.Element.properties.addresses + addresses.Element = AAZStrType() + + bgp_peers = cls._schema_on_200.value.Element.properties.bgp_peers + bgp_peers.Element = AAZStrType() + + communities = cls._schema_on_200.value.Element.properties.communities + communities.Element = AAZStrType() + + service_selector = cls._schema_on_200.value.Element.properties.service_selector + service_selector.Element = 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", + ) + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_show.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_show.py index 7e1cfabac73..0d0018c1d87 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_show.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_show.py @@ -1,229 +1,231 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime load-balancer show", -) -class Show(AAZCommand): - """Get a LoadBalancer - - :example: Get a load balancer - az k8s-runtime load-balancer show --load-balancer-name testlb1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-03-01"], - ] - } - - 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.load_balancer_name = AAZStrArg( - options=["--load-balancer-name"], - help="The name of the LoadBalancer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.LoadBalancersGet(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 LoadBalancersGet(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", - **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( - "loadBalancerName", self.ctx.args.load_balancer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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.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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.properties - properties.addresses = AAZListType( - flags={"required": True}, - ) - properties.advertise_mode = AAZStrType( - serialized_name="advertiseMode", - flags={"required": True}, - ) - properties.bgp_peers = AAZListType( - serialized_name="bgpPeers", - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.service_selector = AAZDictType( - serialized_name="serviceSelector", - ) - - addresses = cls._schema_on_200.properties.addresses - addresses.Element = AAZStrType() - - bgp_peers = cls._schema_on_200.properties.bgp_peers - bgp_peers.Element = AAZStrType() - - service_selector = cls._schema_on_200.properties.service_selector - service_selector.Element = 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", - ) - - return cls._schema_on_200 - - -class _ShowHelper: - """Helper class for Show""" - - -__all__ = ["Show"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime load-balancer show", +) +class Show(AAZCommand): + """Get a LoadBalancer + + :example: Get a load balancer + az k8s-runtime load-balancer show --load-balancer-name testlb1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-08-01"], + ] + } + + 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.load_balancer_name = AAZStrArg( + options=["--load-balancer-name"], + help="The name of the LoadBalancer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.LoadBalancersGet(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 LoadBalancersGet(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", + **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( + "loadBalancerName", self.ctx.args.load_balancer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.addresses = AAZListType( + flags={"required": True}, + ) + properties.advertise_mode = AAZStrType( + serialized_name="advertiseMode", + flags={"required": True}, + ) + properties.bgp_peers = AAZListType( + serialized_name="bgpPeers", + ) + properties.communities = AAZListType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.service_selector = AAZDictType( + serialized_name="serviceSelector", + ) + + addresses = cls._schema_on_200.properties.addresses + addresses.Element = AAZStrType() + + bgp_peers = cls._schema_on_200.properties.bgp_peers + bgp_peers.Element = AAZStrType() + + communities = cls._schema_on_200.properties.communities + communities.Element = AAZStrType() + + service_selector = cls._schema_on_200.properties.service_selector + service_selector.Element = 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", + ) + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_update.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_update.py index e94b490d2b6..69cd87ad4df 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_update.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_update.py @@ -1,393 +1,476 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime load-balancer update", -) -class Update(AAZCommand): - """Update a LoadBalancer - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-03-01"], - ] - } - - AZ_SUPPORT_NO_WAIT = True - - AZ_SUPPORT_GENERIC_UPDATE = 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.load_balancer_name = AAZStrArg( - options=["--load-balancer-name"], - help="The name of the LoadBalancer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.LoadBalancersGet(ctx=self.ctx)() - self.pre_instance_update(self.ctx.vars.instance) - self.InstanceUpdateByJson(ctx=self.ctx)() - self.InstanceUpdateByGeneric(ctx=self.ctx)() - self.post_instance_update(self.ctx.vars.instance) - yield self.LoadBalancersCreateOrUpdate(ctx=self.ctx)() - self.post_operations() - - @register_callback - def pre_operations(self): - pass - - @register_callback - def post_operations(self): - pass - - @register_callback - def pre_instance_update(self, instance): - pass - - @register_callback - def post_instance_update(self, instance): - pass - - def _output(self, *args, **kwargs): - result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) - return result - - class LoadBalancersGet(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", - **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( - "loadBalancerName", self.ctx.args.load_balancer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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() - _UpdateHelper._build_schema_load_balancer_read(cls._schema_on_200) - - return cls._schema_on_200 - - class LoadBalancersCreateOrUpdate(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_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - if session.http_response.status_code in [200, 201]: - return self.client.build_lro_polling( - self.ctx.args.no_wait, - session, - self.on_200_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - - return self.on_error(session.http_response) - - @property - def url(self): - return self.client.format_url( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", - **self.url_parameters - ) - - @property - def method(self): - return "PUT" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "loadBalancerName", self.ctx.args.load_balancer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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, - value=self.ctx.vars.instance, - ) - - return self.serialize_content(_content_value) - - def on_200_201(self, session): - data = self.deserialize_http_content(session) - self.ctx.set_var( - "instance", - data, - schema_builder=self._build_schema_on_200_201 - ) - - _schema_on_200_201 = None - - @classmethod - def _build_schema_on_200_201(cls): - if cls._schema_on_200_201 is not None: - return cls._schema_on_200_201 - - cls._schema_on_200_201 = AAZObjectType() - _UpdateHelper._build_schema_load_balancer_read(cls._schema_on_200_201) - - return cls._schema_on_200_201 - - class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): - - def __call__(self, *args, **kwargs): - self._update_instance(self.ctx.vars.instance) - - def _update_instance(self, instance): - _instance_value, _builder = self.new_content_builder( - self.ctx.args, - value=instance, - typ=AAZObjectType - ) - - return _instance_value - - class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): - - def __call__(self, *args, **kwargs): - self._update_instance_by_generic( - self.ctx.vars.instance, - self.ctx.generic_update_args - ) - - -class _UpdateHelper: - """Helper class for Update""" - - _schema_load_balancer_read = None - - @classmethod - def _build_schema_load_balancer_read(cls, _schema): - if cls._schema_load_balancer_read is not None: - _schema.id = cls._schema_load_balancer_read.id - _schema.name = cls._schema_load_balancer_read.name - _schema.properties = cls._schema_load_balancer_read.properties - _schema.system_data = cls._schema_load_balancer_read.system_data - _schema.type = cls._schema_load_balancer_read.type - return - - cls._schema_load_balancer_read = _schema_load_balancer_read = AAZObjectType() - - load_balancer_read = _schema_load_balancer_read - load_balancer_read.id = AAZStrType( - flags={"read_only": True}, - ) - load_balancer_read.name = AAZStrType( - flags={"read_only": True}, - ) - load_balancer_read.properties = AAZObjectType( - flags={"client_flatten": True}, - ) - load_balancer_read.system_data = AAZObjectType( - serialized_name="systemData", - flags={"read_only": True}, - ) - load_balancer_read.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = _schema_load_balancer_read.properties - properties.addresses = AAZListType( - flags={"required": True}, - ) - properties.advertise_mode = AAZStrType( - serialized_name="advertiseMode", - flags={"required": True}, - ) - properties.bgp_peers = AAZListType( - serialized_name="bgpPeers", - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.service_selector = AAZDictType( - serialized_name="serviceSelector", - ) - - addresses = _schema_load_balancer_read.properties.addresses - addresses.Element = AAZStrType() - - bgp_peers = _schema_load_balancer_read.properties.bgp_peers - bgp_peers.Element = AAZStrType() - - service_selector = _schema_load_balancer_read.properties.service_selector - service_selector.Element = AAZStrType() - - system_data = _schema_load_balancer_read.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", - ) - - _schema.id = cls._schema_load_balancer_read.id - _schema.name = cls._schema_load_balancer_read.name - _schema.properties = cls._schema_load_balancer_read.properties - _schema.system_data = cls._schema_load_balancer_read.system_data - _schema.type = cls._schema_load_balancer_read.type - - -__all__ = ["Update"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime load-balancer update", +) +class Update(AAZCommand): + """Update a LoadBalancer + + :example: Update a load balancer + az k8s-runtime load-balancer update --load-balancer-name testlb1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --advertise-mode ARP + """ + + _aaz_info = { + "version": "2024-08-01", + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-08-01"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + AZ_SUPPORT_GENERIC_UPDATE = 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.load_balancer_name = AAZStrArg( + options=["--load-balancer-name"], + help="The name of the LoadBalancer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.addresses = AAZListArg( + options=["--addresses"], + arg_group="Properties", + help="IP Range", + ) + _args_schema.advertise_mode = AAZStrArg( + options=["--advertise-mode"], + arg_group="Properties", + help="Advertise Mode", + enum={"ARP": "ARP", "BGP": "BGP", "Both": "Both"}, + ) + _args_schema.bgp_peers = AAZListArg( + options=["--bgp-peers"], + arg_group="Properties", + help="The list of BGP peers it should advertise to. Null or empty means to advertise to all peers.", + nullable=True, + ) + _args_schema.communities = AAZListArg( + options=["--communities"], + arg_group="Properties", + help="BGP Communities", + nullable=True, + ) + _args_schema.service_selector = AAZDictArg( + options=["--service-selector"], + arg_group="Properties", + help="A dynamic label mapping to select related services. For instance, if you want to create a load balancer only for services with label \"a=b\", then please specify {\"a\": \"b\"} in the field.", + nullable=True, + ) + + addresses = cls._args_schema.addresses + addresses.Element = AAZStrArg( + nullable=True, + ) + + bgp_peers = cls._args_schema.bgp_peers + bgp_peers.Element = AAZStrArg( + nullable=True, + ) + + communities = cls._args_schema.communities + communities.Element = AAZStrArg( + nullable=True, + ) + + service_selector = cls._args_schema.service_selector + service_selector.Element = AAZStrArg( + nullable=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.LoadBalancersGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + yield self.LoadBalancersCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class LoadBalancersGet(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", + **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( + "loadBalancerName", self.ctx.args.load_balancer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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() + _UpdateHelper._build_schema_load_balancer_read(cls._schema_on_200) + + return cls._schema_on_200 + + class LoadBalancersCreateOrUpdate(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_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "loadBalancerName", self.ctx.args.load_balancer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + _UpdateHelper._build_schema_load_balancer_read(cls._schema_on_200_201) + + return cls._schema_on_200_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("addresses", AAZListType, ".addresses", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("advertiseMode", AAZStrType, ".advertise_mode", typ_kwargs={"flags": {"required": True}}) + properties.set_prop("bgpPeers", AAZListType, ".bgp_peers") + properties.set_prop("communities", AAZListType, ".communities") + properties.set_prop("serviceSelector", AAZDictType, ".service_selector") + + addresses = _builder.get(".properties.addresses") + if addresses is not None: + addresses.set_elements(AAZStrType, ".") + + bgp_peers = _builder.get(".properties.bgpPeers") + if bgp_peers is not None: + bgp_peers.set_elements(AAZStrType, ".") + + communities = _builder.get(".properties.communities") + if communities is not None: + communities.set_elements(AAZStrType, ".") + + service_selector = _builder.get(".properties.serviceSelector") + if service_selector is not None: + service_selector.set_elements(AAZStrType, ".") + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + _schema_load_balancer_read = None + + @classmethod + def _build_schema_load_balancer_read(cls, _schema): + if cls._schema_load_balancer_read is not None: + _schema.id = cls._schema_load_balancer_read.id + _schema.name = cls._schema_load_balancer_read.name + _schema.properties = cls._schema_load_balancer_read.properties + _schema.system_data = cls._schema_load_balancer_read.system_data + _schema.type = cls._schema_load_balancer_read.type + return + + cls._schema_load_balancer_read = _schema_load_balancer_read = AAZObjectType() + + load_balancer_read = _schema_load_balancer_read + load_balancer_read.id = AAZStrType( + flags={"read_only": True}, + ) + load_balancer_read.name = AAZStrType( + flags={"read_only": True}, + ) + load_balancer_read.properties = AAZObjectType() + load_balancer_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + load_balancer_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_load_balancer_read.properties + properties.addresses = AAZListType( + flags={"required": True}, + ) + properties.advertise_mode = AAZStrType( + serialized_name="advertiseMode", + flags={"required": True}, + ) + properties.bgp_peers = AAZListType( + serialized_name="bgpPeers", + ) + properties.communities = AAZListType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.service_selector = AAZDictType( + serialized_name="serviceSelector", + ) + + addresses = _schema_load_balancer_read.properties.addresses + addresses.Element = AAZStrType() + + bgp_peers = _schema_load_balancer_read.properties.bgp_peers + bgp_peers.Element = AAZStrType() + + communities = _schema_load_balancer_read.properties.communities + communities.Element = AAZStrType() + + service_selector = _schema_load_balancer_read.properties.service_selector + service_selector.Element = AAZStrType() + + system_data = _schema_load_balancer_read.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", + ) + + _schema.id = cls._schema_load_balancer_read.id + _schema.name = cls._schema_load_balancer_read.name + _schema.properties = cls._schema_load_balancer_read.properties + _schema.system_data = cls._schema_load_balancer_read.system_data + _schema.type = cls._schema_load_balancer_read.type + + +__all__ = ["Update"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_wait.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_wait.py index 2467cece921..c3ffe881d01 100644 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_wait.py +++ b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/load_balancer/_wait.py @@ -1,225 +1,227 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime load-balancer wait", -) -class Wait(AAZWaitCommand): - """Place the CLI in a waiting state until a condition is met. - """ - - _aaz_info = { - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-03-01"], - ] - } - - 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.load_balancer_name = AAZStrArg( - options=["--load-balancer-name"], - help="The name of the LoadBalancer", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - _args_schema.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.LoadBalancersGet(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=False) - return result - - class LoadBalancersGet(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", - **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( - "loadBalancerName", self.ctx.args.load_balancer_name, - required=True, - ), - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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.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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.properties - properties.addresses = AAZListType( - flags={"required": True}, - ) - properties.advertise_mode = AAZStrType( - serialized_name="advertiseMode", - flags={"required": True}, - ) - properties.bgp_peers = AAZListType( - serialized_name="bgpPeers", - ) - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.service_selector = AAZDictType( - serialized_name="serviceSelector", - ) - - addresses = cls._schema_on_200.properties.addresses - addresses.Element = AAZStrType() - - bgp_peers = cls._schema_on_200.properties.bgp_peers - bgp_peers.Element = AAZStrType() - - service_selector = cls._schema_on_200.properties.service_selector - service_selector.Element = 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", - ) - - return cls._schema_on_200 - - -class _WaitHelper: - """Helper class for Wait""" - - -__all__ = ["Wait"] +# -------------------------------------------------------------------------------------------- +# 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( + "k8s-runtime load-balancer wait", +) +class Wait(AAZWaitCommand): + """Place the CLI in a waiting state until a condition is met. + """ + + _aaz_info = { + "resources": [ + ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/loadbalancers/{}", "2024-08-01"], + ] + } + + 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.load_balancer_name = AAZStrArg( + options=["--load-balancer-name"], + help="The name of the LoadBalancer", + required=True, + fmt=AAZStrArgFormat( + pattern="^[a-zA-Z0-9-]{3,24}$", + ), + ) + _args_schema.resource_uri = AAZStrArg( + options=["--resource-uri"], + help="The fully qualified Azure Resource manager identifier of the resource.", + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.LoadBalancersGet(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=False) + return result + + class LoadBalancersGet(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( + "/{resourceUri}/providers/Microsoft.KubernetesRuntime/loadBalancers/{loadBalancerName}", + **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( + "loadBalancerName", self.ctx.args.load_balancer_name, + required=True, + ), + **self.serialize_url_param( + "resourceUri", self.ctx.args.resource_uri, + skip_quote=True, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2024-08-01", + 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.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.addresses = AAZListType( + flags={"required": True}, + ) + properties.advertise_mode = AAZStrType( + serialized_name="advertiseMode", + flags={"required": True}, + ) + properties.bgp_peers = AAZListType( + serialized_name="bgpPeers", + ) + properties.communities = AAZListType() + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.service_selector = AAZDictType( + serialized_name="serviceSelector", + ) + + addresses = cls._schema_on_200.properties.addresses + addresses.Element = AAZStrType() + + bgp_peers = cls._schema_on_200.properties.bgp_peers + bgp_peers.Element = AAZStrType() + + communities = cls._schema_on_200.properties.communities + communities.Element = AAZStrType() + + service_selector = cls._schema_on_200.properties.service_selector + service_selector.Element = 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", + ) + + return cls._schema_on_200 + + +class _WaitHelper: + """Helper class for Wait""" + + +__all__ = ["Wait"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/__cmd_group.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/__cmd_group.py deleted file mode 100644 index bd37f02ea6a..00000000000 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/__cmd_group.py +++ /dev/null @@ -1,24 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime service", - is_preview=True, -) -class __CMDGroup(AAZCommandGroup): - """Manage Kubernetes runtime services of Arc Kubernetes clusters - """ - pass - - -__all__ = ["__CMDGroup"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/__init__.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/__init__.py deleted file mode 100644 index efc3964e3fb..00000000000 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/service/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# 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 ._create import * -from ._delete import * -from ._list import * -from ._show import * diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_create.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_create.py deleted file mode 100644 index 58831168440..00000000000 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_create.py +++ /dev/null @@ -1,562 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime storage-class create", - is_preview=True, -) -class Create(AAZCommand): - """Create a StorageClass - - :example: Create an RWX storage class on top of managed-csi storage class - az k8s-runtime storage-class create --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --storage-class-name rwxsc --type-properties rwx.backing-storage-class-name=managed-csi - - :example: Create a Blob storage class - az k8s-runtime storage-class create --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --storage-class-name blobsc --type-properties blob.azure-storage-account-key=accountkey blob.azure-storage-account-name=accountname - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/storageclasses/{}", "2024-03-01"], - ] - } - - 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.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - _args_schema.storage_class_name = AAZStrArg( - options=["--storage-class-name"], - help="The name of the the storage class", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - - # define Arg Group "Properties" - - _args_schema = cls._args_schema - _args_schema.access_modes = AAZListArg( - options=["--access-modes"], - arg_group="Properties", - help="The access mode: [ReadWriteOnce, ReadWriteMany] or [ReadWriteOnce]", - ) - _args_schema.allow_volume_expansion = AAZStrArg( - options=["--allow-volume-expansion"], - arg_group="Properties", - help="Volume can be expanded or not", - enum={"Allow": "Allow", "Disallow": "Disallow"}, - ) - _args_schema.data_resilience = AAZStrArg( - options=["--data-resilience"], - arg_group="Properties", - help="Allow single data node failure", - enum={"DataResilient": "DataResilient", "NotDataResilient": "NotDataResilient"}, - ) - _args_schema.failover_speed = AAZStrArg( - options=["--failover-speed"], - arg_group="Properties", - help="Failover speed: NA, Slow, Fast", - enum={"Fast": "Fast", "NotAvailable": "NotAvailable", "Slow": "Slow", "Super": "Super"}, - ) - _args_schema.limitations = AAZListArg( - options=["--limitations"], - arg_group="Properties", - help="Limitations of the storage class", - ) - _args_schema.mount_options = AAZListArg( - options=["--mount-options"], - arg_group="Properties", - help="Additional mount options", - ) - _args_schema.performance = AAZStrArg( - options=["--performance"], - arg_group="Properties", - help="Performance tier", - enum={"Basic": "Basic", "Premium": "Premium", "Standard": "Standard", "Ultra": "Ultra", "Undefined": "Undefined"}, - ) - _args_schema.priority = AAZIntArg( - options=["--priority"], - arg_group="Properties", - help="Selection priority when multiple storage classes meet the criteria. 0: Highest, -1: Never use", - ) - _args_schema.provisioner = AAZStrArg( - options=["--provisioner"], - arg_group="Properties", - help="Provisioner name", - ) - _args_schema.type_properties = AAZObjectArg( - options=["--type-properties"], - arg_group="Properties", - help="Properties of the StorageClass", - ) - _args_schema.volume_binding_mode = AAZStrArg( - options=["--volume-binding-mode"], - arg_group="Properties", - help="Binding mode of volumes: Immediate, WaitForFirstConsumer", - enum={"Immediate": "Immediate", "WaitForFirstConsumer": "WaitForFirstConsumer"}, - ) - - access_modes = cls._args_schema.access_modes - access_modes.Element = AAZStrArg( - enum={"ReadWriteMany": "ReadWriteMany", "ReadWriteOnce": "ReadWriteOnce"}, - ) - - limitations = cls._args_schema.limitations - limitations.Element = AAZStrArg() - - mount_options = cls._args_schema.mount_options - mount_options.Element = AAZStrArg() - - type_properties = cls._args_schema.type_properties - type_properties.blob = AAZObjectArg( - options=["blob"], - help="Properties of a blob storage class", - ) - type_properties.nfs = AAZObjectArg( - options=["nfs"], - help="Properties of a NFS storage class", - ) - type_properties.native = AAZObjectArg( - options=["native"], - blank={}, - ) - type_properties.rwx = AAZObjectArg( - options=["rwx"], - help="Properties of a RWX storage class", - ) - type_properties.smb = AAZObjectArg( - options=["smb"], - help="Properties of an SMB storage class", - ) - - blob = cls._args_schema.type_properties.blob - blob.azure_storage_account_key = AAZPasswordArg( - options=["azure-storage-account-key"], - help="Azure Storage Account Key", - required=True, - blank=AAZPromptPasswordInput( - msg="Password:", - ), - ) - blob.azure_storage_account_name = AAZStrArg( - options=["azure-storage-account-name"], - help="Azure Storage Account Name", - required=True, - ) - - nfs = cls._args_schema.type_properties.nfs - nfs.mount_permissions = AAZStrArg( - options=["mount-permissions"], - help="Mounted folder permissions. Default is 0. If set as non-zero, driver will perform `chmod` after mount", - ) - nfs.on_delete = AAZStrArg( - options=["on-delete"], - help="The action to take when a NFS volume is deleted. Default is Delete", - enum={"Delete": "Delete", "Retain": "Retain"}, - ) - nfs.server = AAZStrArg( - options=["server"], - help="NFS Server", - required=True, - ) - nfs.share = AAZStrArg( - options=["share"], - help="NFS share", - required=True, - ) - nfs.sub_dir = AAZStrArg( - options=["sub-dir"], - help="Sub directory under share. If the sub directory doesn't exist, driver will create it", - ) - - rwx = cls._args_schema.type_properties.rwx - rwx.backing_storage_class_name = AAZStrArg( - options=["backing-storage-class-name"], - help="The backing storageclass used to create new storageclass", - required=True, - ) - - smb = cls._args_schema.type_properties.smb - smb.domain = AAZStrArg( - options=["domain"], - help="Server domain", - ) - smb.password = AAZPasswordArg( - options=["password"], - help="Server password", - blank=AAZPromptPasswordInput( - msg="Password:", - ), - ) - smb.source = AAZStrArg( - options=["source"], - help="SMB Source", - required=True, - ) - smb.sub_dir = AAZStrArg( - options=["sub-dir"], - help="Sub directory under share. If the sub directory doesn't exist, driver will create it", - ) - smb.username = AAZStrArg( - options=["username"], - help="Server username", - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - yield self.StorageClassCreateOrUpdate(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 StorageClassCreateOrUpdate(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_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - if session.http_response.status_code in [200, 201]: - return self.client.build_lro_polling( - self.ctx.args.no_wait, - session, - self.on_200_201, - self.on_error, - lro_options={"final-state-via": "azure-async-operation"}, - path_format_arguments=self.url_parameters, - ) - - return self.on_error(session.http_response) - - @property - def url(self): - return self.client.format_url( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/storageClasses/{storageClassName}", - **self.url_parameters - ) - - @property - def method(self): - return "PUT" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - **self.serialize_url_param( - "storageClassName", self.ctx.args.storage_class_name, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}}) - - properties = _builder.get(".properties") - if properties is not None: - properties.set_prop("accessModes", AAZListType, ".access_modes") - properties.set_prop("allowVolumeExpansion", AAZStrType, ".allow_volume_expansion") - properties.set_prop("dataResilience", AAZStrType, ".data_resilience") - properties.set_prop("failoverSpeed", AAZStrType, ".failover_speed") - properties.set_prop("limitations", AAZListType, ".limitations") - properties.set_prop("mountOptions", AAZListType, ".mount_options") - properties.set_prop("performance", AAZStrType, ".performance") - properties.set_prop("priority", AAZIntType, ".priority") - properties.set_prop("provisioner", AAZStrType, ".provisioner") - properties.set_prop("typeProperties", AAZObjectType, ".type_properties", typ_kwargs={"flags": {"required": True}}) - properties.set_prop("volumeBindingMode", AAZStrType, ".volume_binding_mode") - - access_modes = _builder.get(".properties.accessModes") - if access_modes is not None: - access_modes.set_elements(AAZStrType, ".") - - limitations = _builder.get(".properties.limitations") - if limitations is not None: - limitations.set_elements(AAZStrType, ".") - - mount_options = _builder.get(".properties.mountOptions") - if mount_options is not None: - mount_options.set_elements(AAZStrType, ".") - - type_properties = _builder.get(".properties.typeProperties") - if type_properties is not None: - type_properties.set_const("type", "Blob", AAZStrType, ".blob", typ_kwargs={"flags": {"required": True}}) - type_properties.set_const("type", "NFS", AAZStrType, ".nfs", typ_kwargs={"flags": {"required": True}}) - type_properties.set_const("type", "Native", AAZStrType, ".native", typ_kwargs={"flags": {"required": True}}) - type_properties.set_const("type", "RWX", AAZStrType, ".rwx", typ_kwargs={"flags": {"required": True}}) - type_properties.set_const("type", "SMB", AAZStrType, ".smb", typ_kwargs={"flags": {"required": True}}) - type_properties.discriminate_by("type", "Blob") - type_properties.discriminate_by("type", "NFS") - type_properties.discriminate_by("type", "Native") - type_properties.discriminate_by("type", "RWX") - type_properties.discriminate_by("type", "SMB") - - disc_blob = _builder.get(".properties.typeProperties{type:Blob}") - if disc_blob is not None: - disc_blob.set_prop("azureStorageAccountKey", AAZStrType, ".blob.azure_storage_account_key", typ_kwargs={"flags": {"secret": True}}) - disc_blob.set_prop("azureStorageAccountName", AAZStrType, ".blob.azure_storage_account_name", typ_kwargs={"flags": {"required": True}}) - - disc_nfs = _builder.get(".properties.typeProperties{type:NFS}") - if disc_nfs is not None: - disc_nfs.set_prop("mountPermissions", AAZStrType, ".nfs.mount_permissions") - disc_nfs.set_prop("onDelete", AAZStrType, ".nfs.on_delete") - disc_nfs.set_prop("server", AAZStrType, ".nfs.server", typ_kwargs={"flags": {"required": True}}) - disc_nfs.set_prop("share", AAZStrType, ".nfs.share", typ_kwargs={"flags": {"required": True}}) - disc_nfs.set_prop("subDir", AAZStrType, ".nfs.sub_dir") - - disc_rwx = _builder.get(".properties.typeProperties{type:RWX}") - if disc_rwx is not None: - disc_rwx.set_prop("backingStorageClassName", AAZStrType, ".rwx.backing_storage_class_name", typ_kwargs={"flags": {"required": True}}) - - disc_smb = _builder.get(".properties.typeProperties{type:SMB}") - if disc_smb is not None: - disc_smb.set_prop("domain", AAZStrType, ".smb.domain") - disc_smb.set_prop("password", AAZStrType, ".smb.password", typ_kwargs={"flags": {"secret": True}}) - disc_smb.set_prop("source", AAZStrType, ".smb.source", typ_kwargs={"flags": {"required": True}}) - disc_smb.set_prop("subDir", AAZStrType, ".smb.sub_dir") - disc_smb.set_prop("username", AAZStrType, ".smb.username") - - return self.serialize_content(_content_value) - - def on_200_201(self, session): - data = self.deserialize_http_content(session) - self.ctx.set_var( - "instance", - data, - schema_builder=self._build_schema_on_200_201 - ) - - _schema_on_200_201 = None - - @classmethod - def _build_schema_on_200_201(cls): - if cls._schema_on_200_201 is not None: - return cls._schema_on_200_201 - - cls._schema_on_200_201 = AAZObjectType() - - _schema_on_200_201 = cls._schema_on_200_201 - _schema_on_200_201.id = AAZStrType( - flags={"read_only": True}, - ) - _schema_on_200_201.name = AAZStrType( - flags={"read_only": True}, - ) - _schema_on_200_201.properties = AAZObjectType( - flags={"client_flatten": True}, - ) - _schema_on_200_201.system_data = AAZObjectType( - serialized_name="systemData", - flags={"read_only": True}, - ) - _schema_on_200_201.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200_201.properties - properties.access_modes = AAZListType( - serialized_name="accessModes", - ) - properties.allow_volume_expansion = AAZStrType( - serialized_name="allowVolumeExpansion", - ) - properties.data_resilience = AAZStrType( - serialized_name="dataResilience", - ) - properties.failover_speed = AAZStrType( - serialized_name="failoverSpeed", - ) - properties.limitations = AAZListType() - properties.mount_options = AAZListType( - serialized_name="mountOptions", - ) - properties.performance = AAZStrType() - properties.priority = AAZIntType() - properties.provisioner = AAZStrType() - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.type_properties = AAZObjectType( - serialized_name="typeProperties", - flags={"required": True}, - ) - properties.volume_binding_mode = AAZStrType( - serialized_name="volumeBindingMode", - ) - - access_modes = cls._schema_on_200_201.properties.access_modes - access_modes.Element = AAZStrType() - - limitations = cls._schema_on_200_201.properties.limitations - limitations.Element = AAZStrType() - - mount_options = cls._schema_on_200_201.properties.mount_options - mount_options.Element = AAZStrType() - - type_properties = cls._schema_on_200_201.properties.type_properties - type_properties.type = AAZStrType( - flags={"required": True}, - ) - - disc_blob = cls._schema_on_200_201.properties.type_properties.discriminate_by("type", "Blob") - disc_blob.azure_storage_account_key = AAZStrType( - serialized_name="azureStorageAccountKey", - flags={"secret": True}, - ) - disc_blob.azure_storage_account_name = AAZStrType( - serialized_name="azureStorageAccountName", - flags={"required": True}, - ) - - disc_nfs = cls._schema_on_200_201.properties.type_properties.discriminate_by("type", "NFS") - disc_nfs.mount_permissions = AAZStrType( - serialized_name="mountPermissions", - ) - disc_nfs.on_delete = AAZStrType( - serialized_name="onDelete", - ) - disc_nfs.server = AAZStrType( - flags={"required": True}, - ) - disc_nfs.share = AAZStrType( - flags={"required": True}, - ) - disc_nfs.sub_dir = AAZStrType( - serialized_name="subDir", - ) - - disc_rwx = cls._schema_on_200_201.properties.type_properties.discriminate_by("type", "RWX") - disc_rwx.backing_storage_class_name = AAZStrType( - serialized_name="backingStorageClassName", - flags={"required": True}, - ) - - disc_smb = cls._schema_on_200_201.properties.type_properties.discriminate_by("type", "SMB") - disc_smb.domain = AAZStrType() - disc_smb.password = AAZStrType( - flags={"secret": True}, - ) - disc_smb.source = AAZStrType( - flags={"required": True}, - ) - disc_smb.sub_dir = AAZStrType( - serialized_name="subDir", - ) - disc_smb.username = AAZStrType() - - system_data = cls._schema_on_200_201.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", - ) - - return cls._schema_on_200_201 - - -class _CreateHelper: - """Helper class for Create""" - - -__all__ = ["Create"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_delete.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_delete.py deleted file mode 100644 index 6ad6df33a5b..00000000000 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_delete.py +++ /dev/null @@ -1,165 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime storage-class delete", - is_preview=True, - confirmation="Are you sure you want to perform this operation?", -) -class Delete(AAZCommand): - """Delete a StorageClass - - :example: Delete a storage class - az k8s-runtime storage-class delete --storage-class-name sc1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/storageclasses/{}", "2024-03-01"], - ] - } - - AZ_SUPPORT_NO_WAIT = True - - def _handler(self, command_args): - super()._handler(command_args) - return self.build_lro_poller(self._execute_operations, None) - - _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_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - _args_schema.storage_class_name = AAZStrArg( - options=["--storage-class-name"], - help="The name of the the storage class", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - yield self.StorageClassDelete(ctx=self.ctx)() - self.post_operations() - - @register_callback - def pre_operations(self): - pass - - @register_callback - def post_operations(self): - pass - - class StorageClassDelete(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_201, - self.on_error, - lro_options={"final-state-via": "location"}, - path_format_arguments=self.url_parameters, - ) - if session.http_response.status_code in [204]: - return self.client.build_lro_polling( - self.ctx.args.no_wait, - session, - self.on_204, - self.on_error, - lro_options={"final-state-via": "location"}, - path_format_arguments=self.url_parameters, - ) - if session.http_response.status_code in [200, 201]: - return self.client.build_lro_polling( - self.ctx.args.no_wait, - session, - self.on_200_201, - 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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/storageClasses/{storageClassName}", - **self.url_parameters - ) - - @property - def method(self): - return "DELETE" - - @property - def error_format(self): - return "MgmtErrorFormat" - - @property - def url_parameters(self): - parameters = { - **self.serialize_url_param( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - **self.serialize_url_param( - "storageClassName", self.ctx.args.storage_class_name, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - required=True, - ), - } - return parameters - - def on_204(self, session): - pass - - def on_200_201(self, session): - pass - - -class _DeleteHelper: - """Helper class for Delete""" - - -__all__ = ["Delete"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_list.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_list.py deleted file mode 100644 index 9a3803e530c..00000000000 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_list.py +++ /dev/null @@ -1,295 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime storage-class list", - is_preview=True, -) -class List(AAZCommand): - """List StorageClass resources by parent - - :example: List all storage classes in a cluster - az k8s-runtime storage-class list --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/storageclasses", "2024-03-01"], - ] - } - - 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_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.StorageClassList(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 StorageClassList(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/storageClasses", - **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( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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( - flags={"required": True}, - ) - - value = cls._schema_on_200.value - value.Element = AAZObjectType() - - _element = cls._schema_on_200.value.Element - _element.id = AAZStrType( - flags={"read_only": 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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.value.Element.properties - properties.access_modes = AAZListType( - serialized_name="accessModes", - ) - properties.allow_volume_expansion = AAZStrType( - serialized_name="allowVolumeExpansion", - ) - properties.data_resilience = AAZStrType( - serialized_name="dataResilience", - ) - properties.failover_speed = AAZStrType( - serialized_name="failoverSpeed", - ) - properties.limitations = AAZListType() - properties.mount_options = AAZListType( - serialized_name="mountOptions", - ) - properties.performance = AAZStrType() - properties.priority = AAZIntType() - properties.provisioner = AAZStrType() - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.type_properties = AAZObjectType( - serialized_name="typeProperties", - flags={"required": True}, - ) - properties.volume_binding_mode = AAZStrType( - serialized_name="volumeBindingMode", - ) - - access_modes = cls._schema_on_200.value.Element.properties.access_modes - access_modes.Element = AAZStrType() - - limitations = cls._schema_on_200.value.Element.properties.limitations - limitations.Element = AAZStrType() - - mount_options = cls._schema_on_200.value.Element.properties.mount_options - mount_options.Element = AAZStrType() - - type_properties = cls._schema_on_200.value.Element.properties.type_properties - type_properties.type = AAZStrType( - flags={"required": True}, - ) - - disc_blob = cls._schema_on_200.value.Element.properties.type_properties.discriminate_by("type", "Blob") - disc_blob.azure_storage_account_key = AAZStrType( - serialized_name="azureStorageAccountKey", - flags={"secret": True}, - ) - disc_blob.azure_storage_account_name = AAZStrType( - serialized_name="azureStorageAccountName", - flags={"required": True}, - ) - - disc_nfs = cls._schema_on_200.value.Element.properties.type_properties.discriminate_by("type", "NFS") - disc_nfs.mount_permissions = AAZStrType( - serialized_name="mountPermissions", - ) - disc_nfs.on_delete = AAZStrType( - serialized_name="onDelete", - ) - disc_nfs.server = AAZStrType( - flags={"required": True}, - ) - disc_nfs.share = AAZStrType( - flags={"required": True}, - ) - disc_nfs.sub_dir = AAZStrType( - serialized_name="subDir", - ) - - disc_rwx = cls._schema_on_200.value.Element.properties.type_properties.discriminate_by("type", "RWX") - disc_rwx.backing_storage_class_name = AAZStrType( - serialized_name="backingStorageClassName", - flags={"required": True}, - ) - - disc_smb = cls._schema_on_200.value.Element.properties.type_properties.discriminate_by("type", "SMB") - disc_smb.domain = AAZStrType() - disc_smb.password = AAZStrType( - flags={"secret": True}, - ) - disc_smb.source = AAZStrType( - flags={"required": True}, - ) - disc_smb.sub_dir = AAZStrType( - serialized_name="subDir", - ) - disc_smb.username = 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", - ) - - return cls._schema_on_200 - - -class _ListHelper: - """Helper class for List""" - - -__all__ = ["List"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_show.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_show.py deleted file mode 100644 index 5798b1af0cd..00000000000 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_show.py +++ /dev/null @@ -1,294 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime storage-class show", - is_preview=True, -) -class Show(AAZCommand): - """Get a StorageClass - - :example: Show a storage class - az k8s-runtime storage-class show --storage-class-name sc1 --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/storageclasses/{}", "2024-03-01"], - ] - } - - 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.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - _args_schema.storage_class_name = AAZStrArg( - options=["--storage-class-name"], - help="The name of the the storage class", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.StorageClassGet(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 StorageClassGet(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/storageClasses/{storageClassName}", - **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( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - **self.serialize_url_param( - "storageClassName", self.ctx.args.storage_class_name, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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.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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.properties - properties.access_modes = AAZListType( - serialized_name="accessModes", - ) - properties.allow_volume_expansion = AAZStrType( - serialized_name="allowVolumeExpansion", - ) - properties.data_resilience = AAZStrType( - serialized_name="dataResilience", - ) - properties.failover_speed = AAZStrType( - serialized_name="failoverSpeed", - ) - properties.limitations = AAZListType() - properties.mount_options = AAZListType( - serialized_name="mountOptions", - ) - properties.performance = AAZStrType() - properties.priority = AAZIntType() - properties.provisioner = AAZStrType() - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.type_properties = AAZObjectType( - serialized_name="typeProperties", - flags={"required": True}, - ) - properties.volume_binding_mode = AAZStrType( - serialized_name="volumeBindingMode", - ) - - access_modes = cls._schema_on_200.properties.access_modes - access_modes.Element = AAZStrType() - - limitations = cls._schema_on_200.properties.limitations - limitations.Element = AAZStrType() - - mount_options = cls._schema_on_200.properties.mount_options - mount_options.Element = AAZStrType() - - type_properties = cls._schema_on_200.properties.type_properties - type_properties.type = AAZStrType( - flags={"required": True}, - ) - - disc_blob = cls._schema_on_200.properties.type_properties.discriminate_by("type", "Blob") - disc_blob.azure_storage_account_key = AAZStrType( - serialized_name="azureStorageAccountKey", - flags={"secret": True}, - ) - disc_blob.azure_storage_account_name = AAZStrType( - serialized_name="azureStorageAccountName", - flags={"required": True}, - ) - - disc_nfs = cls._schema_on_200.properties.type_properties.discriminate_by("type", "NFS") - disc_nfs.mount_permissions = AAZStrType( - serialized_name="mountPermissions", - ) - disc_nfs.on_delete = AAZStrType( - serialized_name="onDelete", - ) - disc_nfs.server = AAZStrType( - flags={"required": True}, - ) - disc_nfs.share = AAZStrType( - flags={"required": True}, - ) - disc_nfs.sub_dir = AAZStrType( - serialized_name="subDir", - ) - - disc_rwx = cls._schema_on_200.properties.type_properties.discriminate_by("type", "RWX") - disc_rwx.backing_storage_class_name = AAZStrType( - serialized_name="backingStorageClassName", - flags={"required": True}, - ) - - disc_smb = cls._schema_on_200.properties.type_properties.discriminate_by("type", "SMB") - disc_smb.domain = AAZStrType() - disc_smb.password = AAZStrType( - flags={"secret": True}, - ) - disc_smb.source = AAZStrType( - flags={"required": True}, - ) - disc_smb.sub_dir = AAZStrType( - serialized_name="subDir", - ) - disc_smb.username = 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", - ) - - return cls._schema_on_200 - - -class _ShowHelper: - """Helper class for Show""" - - -__all__ = ["Show"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_update.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_update.py deleted file mode 100644 index f0e001d1716..00000000000 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_update.py +++ /dev/null @@ -1,485 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime storage-class update", - is_preview=True, -) -class Update(AAZCommand): - """Update a StorageClass - - :example: Update the properties of a Blob storage class - az k8s-runtime storage-class update --resource-uri subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/example/providers/Microsoft.Kubernetes/connectedClusters/cluster1 --storage-class-name blobsc --type-properties azure-storage-account-key=accountkey azure-storage-account-name=accountname - """ - - _aaz_info = { - "version": "2024-03-01", - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/storageclasses/{}", "2024-03-01"], - ] - } - - 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.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - _args_schema.storage_class_name = AAZStrArg( - options=["--storage-class-name"], - help="The name of the the storage class", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - - # define Arg Group "Properties" - - _args_schema = cls._args_schema - _args_schema.access_modes = AAZListArg( - options=["--access-modes"], - arg_group="Properties", - help="The access mode: [ReadWriteOnce, ReadWriteMany] or [ReadWriteOnce]", - ) - _args_schema.allow_volume_expansion = AAZStrArg( - options=["--allow-volume-expansion"], - arg_group="Properties", - help="Volume can be expanded or not", - enum={"Allow": "Allow", "Disallow": "Disallow"}, - ) - _args_schema.data_resilience = AAZStrArg( - options=["--data-resilience"], - arg_group="Properties", - help="Allow single data node failure", - enum={"DataResilient": "DataResilient", "NotDataResilient": "NotDataResilient"}, - ) - _args_schema.failover_speed = AAZStrArg( - options=["--failover-speed"], - arg_group="Properties", - help="Failover speed: NA, Slow, Fast", - enum={"Fast": "Fast", "NotAvailable": "NotAvailable", "Slow": "Slow", "Super": "Super"}, - ) - _args_schema.limitations = AAZListArg( - options=["--limitations"], - arg_group="Properties", - help="Limitations of the storage class", - ) - _args_schema.mount_options = AAZListArg( - options=["--mount-options"], - arg_group="Properties", - help="Additional mount options", - ) - _args_schema.performance = AAZStrArg( - options=["--performance"], - arg_group="Properties", - help="Performance tier", - enum={"Basic": "Basic", "Premium": "Premium", "Standard": "Standard", "Ultra": "Ultra", "Undefined": "Undefined"}, - ) - _args_schema.priority = AAZIntArg( - options=["--priority"], - arg_group="Properties", - help="Selection priority when multiple storage classes meet the criteria. 0: Highest, -1: Never use", - ) - _args_schema.type_properties = AAZObjectArg( - options=["--type-properties"], - arg_group="Properties", - help="New storage class type of storageClass", - ) - - access_modes = cls._args_schema.access_modes - access_modes.Element = AAZStrArg( - enum={"ReadWriteMany": "ReadWriteMany", "ReadWriteOnce": "ReadWriteOnce"}, - ) - - limitations = cls._args_schema.limitations - limitations.Element = AAZStrArg() - - mount_options = cls._args_schema.mount_options - mount_options.Element = AAZStrArg() - - type_properties = cls._args_schema.type_properties - type_properties.azure_storage_account_key = AAZPasswordArg( - options=["azure-storage-account-key"], - help="Azure Storage Account Key", - blank=AAZPromptPasswordInput( - msg="Password:", - ), - ) - type_properties.azure_storage_account_name = AAZStrArg( - options=["azure-storage-account-name"], - help="Azure Storage Account Name", - ) - type_properties.backing_storage_class_name = AAZStrArg( - options=["backing-storage-class-name"], - help="The backing storageclass used to create new storageclass", - ) - type_properties.domain = AAZStrArg( - options=["domain"], - help="Server domain", - ) - type_properties.mount_permissions = AAZStrArg( - options=["mount-permissions"], - help="Mounted folder permissions. Default is 0. If set as non-zero, driver will perform `chmod` after mount", - ) - type_properties.on_delete = AAZStrArg( - options=["on-delete"], - help="The action to take when a NFS volume is deleted. Default is Delete", - enum={"Delete": "Delete", "Retain": "Retain"}, - ) - type_properties.password = AAZPasswordArg( - options=["password"], - help="Server password", - blank=AAZPromptPasswordInput( - msg="Password:", - ), - ) - type_properties.server = AAZStrArg( - options=["server"], - help="NFS Server", - ) - type_properties.share = AAZStrArg( - options=["share"], - help="NFS share", - ) - type_properties.source = AAZStrArg( - options=["source"], - help="SMB Source", - ) - type_properties.sub_dir = AAZStrArg( - options=["sub-dir"], - help="Sub directory under share. If the sub directory doesn't exist, driver will create it", - ) - type_properties.username = AAZStrArg( - options=["username"], - help="Server username", - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - yield self.StorageClassUpdate(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 StorageClassUpdate(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/storageClasses/{storageClassName}", - **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( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - **self.serialize_url_param( - "storageClassName", self.ctx.args.storage_class_name, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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("properties", AAZObjectType) - - properties = _builder.get(".properties") - if properties is not None: - properties.set_prop("accessModes", AAZListType, ".access_modes") - properties.set_prop("allowVolumeExpansion", AAZStrType, ".allow_volume_expansion") - properties.set_prop("dataResilience", AAZStrType, ".data_resilience") - properties.set_prop("failoverSpeed", AAZStrType, ".failover_speed") - properties.set_prop("limitations", AAZListType, ".limitations") - properties.set_prop("mountOptions", AAZListType, ".mount_options") - properties.set_prop("performance", AAZStrType, ".performance") - properties.set_prop("priority", AAZIntType, ".priority") - properties.set_prop("typeProperties", AAZObjectType, ".type_properties") - - access_modes = _builder.get(".properties.accessModes") - if access_modes is not None: - access_modes.set_elements(AAZStrType, ".") - - limitations = _builder.get(".properties.limitations") - if limitations is not None: - limitations.set_elements(AAZStrType, ".") - - mount_options = _builder.get(".properties.mountOptions") - if mount_options is not None: - mount_options.set_elements(AAZStrType, ".") - - type_properties = _builder.get(".properties.typeProperties") - if type_properties is not None: - type_properties.set_prop("azureStorageAccountKey", AAZStrType, ".azure_storage_account_key", typ_kwargs={"flags": {"secret": True}}) - type_properties.set_prop("azureStorageAccountName", AAZStrType, ".azure_storage_account_name") - type_properties.set_prop("backingStorageClassName", AAZStrType, ".backing_storage_class_name") - type_properties.set_prop("domain", AAZStrType, ".domain") - type_properties.set_prop("mountPermissions", AAZStrType, ".mount_permissions") - type_properties.set_prop("onDelete", AAZStrType, ".on_delete") - type_properties.set_prop("password", AAZStrType, ".password", typ_kwargs={"flags": {"secret": True}}) - type_properties.set_prop("server", AAZStrType, ".server") - type_properties.set_prop("share", AAZStrType, ".share") - type_properties.set_prop("source", AAZStrType, ".source") - type_properties.set_prop("subDir", AAZStrType, ".sub_dir") - type_properties.set_prop("username", AAZStrType, ".username") - - 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.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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.properties - properties.access_modes = AAZListType( - serialized_name="accessModes", - ) - properties.allow_volume_expansion = AAZStrType( - serialized_name="allowVolumeExpansion", - ) - properties.data_resilience = AAZStrType( - serialized_name="dataResilience", - ) - properties.failover_speed = AAZStrType( - serialized_name="failoverSpeed", - ) - properties.limitations = AAZListType() - properties.mount_options = AAZListType( - serialized_name="mountOptions", - ) - properties.performance = AAZStrType() - properties.priority = AAZIntType() - properties.provisioner = AAZStrType() - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.type_properties = AAZObjectType( - serialized_name="typeProperties", - flags={"required": True}, - ) - properties.volume_binding_mode = AAZStrType( - serialized_name="volumeBindingMode", - ) - - access_modes = cls._schema_on_200.properties.access_modes - access_modes.Element = AAZStrType() - - limitations = cls._schema_on_200.properties.limitations - limitations.Element = AAZStrType() - - mount_options = cls._schema_on_200.properties.mount_options - mount_options.Element = AAZStrType() - - type_properties = cls._schema_on_200.properties.type_properties - type_properties.type = AAZStrType( - flags={"required": True}, - ) - - disc_blob = cls._schema_on_200.properties.type_properties.discriminate_by("type", "Blob") - disc_blob.azure_storage_account_key = AAZStrType( - serialized_name="azureStorageAccountKey", - flags={"secret": True}, - ) - disc_blob.azure_storage_account_name = AAZStrType( - serialized_name="azureStorageAccountName", - flags={"required": True}, - ) - - disc_nfs = cls._schema_on_200.properties.type_properties.discriminate_by("type", "NFS") - disc_nfs.mount_permissions = AAZStrType( - serialized_name="mountPermissions", - ) - disc_nfs.on_delete = AAZStrType( - serialized_name="onDelete", - ) - disc_nfs.server = AAZStrType( - flags={"required": True}, - ) - disc_nfs.share = AAZStrType( - flags={"required": True}, - ) - disc_nfs.sub_dir = AAZStrType( - serialized_name="subDir", - ) - - disc_rwx = cls._schema_on_200.properties.type_properties.discriminate_by("type", "RWX") - disc_rwx.backing_storage_class_name = AAZStrType( - serialized_name="backingStorageClassName", - flags={"required": True}, - ) - - disc_smb = cls._schema_on_200.properties.type_properties.discriminate_by("type", "SMB") - disc_smb.domain = AAZStrType() - disc_smb.password = AAZStrType( - flags={"secret": True}, - ) - disc_smb.source = AAZStrType( - flags={"required": True}, - ) - disc_smb.sub_dir = AAZStrType( - serialized_name="subDir", - ) - disc_smb.username = 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", - ) - - return cls._schema_on_200 - - -class _UpdateHelper: - """Helper class for Update""" - - -__all__ = ["Update"] diff --git a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_wait.py b/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_wait.py deleted file mode 100644 index 6e905c19da8..00000000000 --- a/src/k8s-runtime/azext_k8s_runtime/aaz/latest/k8s_runtime/storage_class/_wait.py +++ /dev/null @@ -1,289 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# 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( - "k8s-runtime storage-class wait", -) -class Wait(AAZWaitCommand): - """Place the CLI in a waiting state until a condition is met. - """ - - _aaz_info = { - "resources": [ - ["mgmt-plane", "/{resourceuri}/providers/microsoft.kubernetesruntime/storageclasses/{}", "2024-03-01"], - ] - } - - 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.resource_uri = AAZStrArg( - options=["--resource-uri"], - help="The fully qualified Azure Resource manager identifier of the resource.", - required=True, - ) - _args_schema.storage_class_name = AAZStrArg( - options=["--storage-class-name"], - help="The name of the the storage class", - required=True, - fmt=AAZStrArgFormat( - pattern="^[a-zA-Z0-9-]{3,24}$", - ), - ) - return cls._args_schema - - def _execute_operations(self): - self.pre_operations() - self.StorageClassGet(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=False) - return result - - class StorageClassGet(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( - "/{resourceUri}/providers/Microsoft.KubernetesRuntime/storageClasses/{storageClassName}", - **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( - "resourceUri", self.ctx.args.resource_uri, - skip_quote=True, - required=True, - ), - **self.serialize_url_param( - "storageClassName", self.ctx.args.storage_class_name, - required=True, - ), - } - return parameters - - @property - def query_parameters(self): - parameters = { - **self.serialize_query_param( - "api-version", "2024-03-01", - 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.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.type = AAZStrType( - flags={"read_only": True}, - ) - - properties = cls._schema_on_200.properties - properties.access_modes = AAZListType( - serialized_name="accessModes", - ) - properties.allow_volume_expansion = AAZStrType( - serialized_name="allowVolumeExpansion", - ) - properties.data_resilience = AAZStrType( - serialized_name="dataResilience", - ) - properties.failover_speed = AAZStrType( - serialized_name="failoverSpeed", - ) - properties.limitations = AAZListType() - properties.mount_options = AAZListType( - serialized_name="mountOptions", - ) - properties.performance = AAZStrType() - properties.priority = AAZIntType() - properties.provisioner = AAZStrType() - properties.provisioning_state = AAZStrType( - serialized_name="provisioningState", - flags={"read_only": True}, - ) - properties.type_properties = AAZObjectType( - serialized_name="typeProperties", - flags={"required": True}, - ) - properties.volume_binding_mode = AAZStrType( - serialized_name="volumeBindingMode", - ) - - access_modes = cls._schema_on_200.properties.access_modes - access_modes.Element = AAZStrType() - - limitations = cls._schema_on_200.properties.limitations - limitations.Element = AAZStrType() - - mount_options = cls._schema_on_200.properties.mount_options - mount_options.Element = AAZStrType() - - type_properties = cls._schema_on_200.properties.type_properties - type_properties.type = AAZStrType( - flags={"required": True}, - ) - - disc_blob = cls._schema_on_200.properties.type_properties.discriminate_by("type", "Blob") - disc_blob.azure_storage_account_key = AAZStrType( - serialized_name="azureStorageAccountKey", - flags={"secret": True}, - ) - disc_blob.azure_storage_account_name = AAZStrType( - serialized_name="azureStorageAccountName", - flags={"required": True}, - ) - - disc_nfs = cls._schema_on_200.properties.type_properties.discriminate_by("type", "NFS") - disc_nfs.mount_permissions = AAZStrType( - serialized_name="mountPermissions", - ) - disc_nfs.on_delete = AAZStrType( - serialized_name="onDelete", - ) - disc_nfs.server = AAZStrType( - flags={"required": True}, - ) - disc_nfs.share = AAZStrType( - flags={"required": True}, - ) - disc_nfs.sub_dir = AAZStrType( - serialized_name="subDir", - ) - - disc_rwx = cls._schema_on_200.properties.type_properties.discriminate_by("type", "RWX") - disc_rwx.backing_storage_class_name = AAZStrType( - serialized_name="backingStorageClassName", - flags={"required": True}, - ) - - disc_smb = cls._schema_on_200.properties.type_properties.discriminate_by("type", "SMB") - disc_smb.domain = AAZStrType() - disc_smb.password = AAZStrType( - flags={"secret": True}, - ) - disc_smb.source = AAZStrType( - flags={"required": True}, - ) - disc_smb.sub_dir = AAZStrType( - serialized_name="subDir", - ) - disc_smb.username = 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", - ) - - return cls._schema_on_200 - - -class _WaitHelper: - """Helper class for Wait""" - - -__all__ = ["Wait"] diff --git a/src/k8s-runtime/azext_k8s_runtime/azext_metadata.json b/src/k8s-runtime/azext_k8s_runtime/azext_metadata.json index 5f75020a42c..33493b06498 100644 --- a/src/k8s-runtime/azext_k8s_runtime/azext_metadata.json +++ b/src/k8s-runtime/azext_k8s_runtime/azext_metadata.json @@ -1,4 +1,4 @@ -{ - "azext.isPreview": false, - "azext.minCliCoreVersion": "2.57.0" +{ + "azext.isPreview": false, + "azext.minCliCoreVersion": "2.70.0" } \ No newline at end of file diff --git a/src/k8s-runtime/azext_k8s_runtime/commands.py b/src/k8s-runtime/azext_k8s_runtime/commands.py index dd37e07139a..542309a81c9 100644 --- a/src/k8s-runtime/azext_k8s_runtime/commands.py +++ b/src/k8s-runtime/azext_k8s_runtime/commands.py @@ -10,15 +10,10 @@ from azext_k8s_runtime import K8sRuntimeCommandsLoader -from .custom import (enable_storage_class_cmd, disable_storage_class_cmd, - enable_load_balancer_cmd, disable_load_balancer_cmd) +from .custom import enable_load_balancer_cmd, disable_load_balancer_cmd def load_command_table(self: K8sRuntimeCommandsLoader, _): # pylint: disable=unused-argument - with self.command_group("k8s-runtime storage-class", is_preview=True) as g: - g.custom_command("enable", enable_storage_class_cmd.__name__) - g.custom_command("disable", disable_storage_class_cmd.__name__) - with self.command_group("k8s-runtime load-balancer") as g: g.custom_command("enable", enable_load_balancer_cmd.__name__) g.custom_command("disable", disable_load_balancer_cmd.__name__) diff --git a/src/k8s-runtime/azext_k8s_runtime/custom.py b/src/k8s-runtime/azext_k8s_runtime/custom.py index 0f9e94286c2..1dcc40643f1 100644 --- a/src/k8s-runtime/azext_k8s_runtime/custom.py +++ b/src/k8s-runtime/azext_k8s_runtime/custom.py @@ -10,32 +10,9 @@ from azure.cli.core.commands import AzCliCommand -from .custom_commands.storage_class import enable_storage_class, disable_storage_class from .custom_commands.load_balancer import enable_load_balancer, disable_load_balancer -def enable_storage_class_cmd(cmd: AzCliCommand, resource_uri: str): - """ - Enable storage class service in a connected cluster - - - :param resource_uri: The resource uri of the connected cluster - """ - - return enable_storage_class(cmd, resource_uri) - - -def disable_storage_class_cmd(cmd: AzCliCommand, resource_uri: str): - """ - Disable storage class service in a connected cluster - - - :param resource_uri: The resource uri of the connected cluster - """ - - return disable_storage_class(cmd, resource_uri) - - def enable_load_balancer_cmd(cmd: AzCliCommand, resource_uri: str): """ Enable load balancer service in a connected cluster diff --git a/src/k8s-runtime/azext_k8s_runtime/custom_commands/storage_class.py b/src/k8s-runtime/azext_k8s_runtime/custom_commands/storage_class.py deleted file mode 100644 index 374d15d8b94..00000000000 --- a/src/k8s-runtime/azext_k8s_runtime/custom_commands/storage_class.py +++ /dev/null @@ -1,192 +0,0 @@ -# -------------------------------------------------------------------------------------------- -# 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 -# pylint: disable=line-too-long - -from uuid import uuid4 -from knack.log import get_logger - -from azure.cli.core.commands import AzCliCommand -from azure.mgmt.authorization import AuthorizationManagementClient -from azure.mgmt.authorization.models import RoleAssignmentCreateParameters, PrincipalType -from ..vendored_sdks.kubernetesconfiguration import SourceControlConfigurationClient -from ..vendored_sdks.kubernetesconfiguration.models import Extension, Identity -from azure.cli.core.commands.client_factory import get_mgmt_service_client -from ..vendored_sdks.resourcegraph import ResourceGraphClient -from ..vendored_sdks.resourcegraph.models import QueryRequest - -from .common import KUBERNETES_RUNTIME_FPA_APP_ID, check_rp_registration, ConnectedClusterResourceId, query_rp_oid - - -logger = get_logger(__name__) - - -# https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#kubernetes-extension-contributor -KUBERNETES_EXTENSION_CONTRIBUTOR_ROLE_ID = "/providers/Microsoft.Authorization/roleDefinitions/85cb6faf-e071-4c9b-8136-154b5a04f717" -STORAGE_CLASS_CONTRIBUTOR_ROLE_ID = "/providers/Microsoft.Authorization/roleDefinitions/0cd9749a-3aaf-4ae5-8803-bd217705bf3b" -STORAGE_CLASS_EXTENSION_NAME = "arc-k8s-storage-class" -STORAGE_CLASS_EXTENSION_TYPE = "Microsoft.ManagedStorageClass" - - -def enable_storage_class(cmd: AzCliCommand, resource_uri: str): - """ - Enable storage class service in a connected cluster - - - :param resource_uri: The resource uri of the connected cluster - """ - - resource_id = ConnectedClusterResourceId.parse(resource_uri) - - check_rp_registration(cmd, resource_id) - logger.info("Kubernetes Runtime RP registered in subscription %s", resource_id.subscription_id) - - print(f"Installing Storage class Arc Extension in cluster {resource_id.cluster_name}...") - - object_id = query_rp_oid(cmd) - logger.info("Found Kubernetes Runtime RP SP in tenant with object id %s", object_id) - - source_control_configuration_client: SourceControlConfigurationClient = get_mgmt_service_client(cmd.cli_ctx, SourceControlConfigurationClient) - - lro = source_control_configuration_client.extensions.begin_create( - resource_group_name=resource_id.resource_group, - cluster_rp="Microsoft.Kubernetes", - cluster_resource_name="connectedClusters", - cluster_name=resource_id.cluster_name, - extension_name=STORAGE_CLASS_EXTENSION_NAME, - extension=Extension( - identity=Identity( - type="SystemAssigned" - ), - extension_type=STORAGE_CLASS_EXTENSION_TYPE, - release_train="preview", - configuration_settings={ - "k8sRuntimeFpaObjectId": object_id, - }, - ) - ) - - # Prevent blocking KeyboardInterrupt - while not lro.done(): - lro.wait(1) - - extension = lro.result() - - authorization_management_client: AuthorizationManagementClient = get_mgmt_service_client(cmd.cli_ctx, AuthorizationManagementClient) - - print("Assign the extension with Storage Class Contributor role under the cluster scope...") - sc_contributor_role_assignment = authorization_management_client.role_assignments.create( - scope=resource_id.resource_uri, - role_assignment_name=str(uuid4()), - # pylint: disable=missing-kwoa - parameters=RoleAssignmentCreateParameters( - role_definition_id=STORAGE_CLASS_CONTRIBUTOR_ROLE_ID, - principal_id=extension.identity.principal_id, - principal_type=PrincipalType.SERVICE_PRINCIPAL - ), - ) - - print("Assign Storage Class RP with Kubernetes Extension Contributor role under the cluster scope...") - k8s_extension_contributor_role_assignment = authorization_management_client.role_assignments.create( - scope=resource_id.resource_uri, - role_assignment_name=str(uuid4()), - # pylint: disable=missing-kwoa - parameters=RoleAssignmentCreateParameters( - role_definition_id=KUBERNETES_EXTENSION_CONTRIBUTOR_ROLE_ID, - principal_id=KUBERNETES_RUNTIME_FPA_APP_ID, - principal_type=PrincipalType.SERVICE_PRINCIPAL, - ), - ) - - return { - "extension": extension, - "storage_class_contributor_role_assignment": sc_contributor_role_assignment, - "kubernetes_extension_contributor_role_assignment": k8s_extension_contributor_role_assignment, - } - - -def disable_storage_class(cmd: AzCliCommand, resource_uri: str): - """ - Disable storage class service in a connected cluster - - - :param resource_uri: The resource uri of the connected cluster - """ - - resource_id = ConnectedClusterResourceId.parse(resource_uri) - - print(f"Uninstall Storage class Arc Extension in cluster {resource_id.cluster_name}...") - source_control_configuration_client: SourceControlConfigurationClient = get_mgmt_service_client(cmd.cli_ctx, SourceControlConfigurationClient) - - extension = source_control_configuration_client.extensions.get( - resource_group_name=resource_id.resource_group, - cluster_rp="Microsoft.Kubernetes", - cluster_resource_name="connectedClusters", - cluster_name=resource_id.cluster_name, - extension_name=STORAGE_CLASS_EXTENSION_NAME, - ) - - delete_lro = source_control_configuration_client.extensions.begin_delete( - resource_group_name=resource_id.resource_group, - cluster_rp="Microsoft.Kubernetes", - cluster_resource_name="connectedClusters", - cluster_name=resource_id.cluster_name, - extension_name=STORAGE_CLASS_EXTENSION_NAME, - ) - - # Prevent blocking KeyboardInterrupt - while not delete_lro.done(): - delete_lro.wait(1) - - print("Delete role assignment of the extension identity with Storage Class Contributor role under the cluster scope..") - - authorization_management_client: AuthorizationManagementClient = get_mgmt_service_client(cmd.cli_ctx, AuthorizationManagementClient) - resource_graph_client: ResourceGraphClient = get_mgmt_service_client(cmd.cli_ctx, ResourceGraphClient, subscription_bound=False) - - sc_contributor_query_response = resource_graph_client.resources(QueryRequest( - subscriptions=[resource_id.subscription_id], - query=f""" - authorizationresources - | where properties.principalId =~ "{extension.identity.principal_id}" and properties.roleDefinitionId =~ "{STORAGE_CLASS_CONTRIBUTOR_ROLE_ID}" and properties.scope =~ "{resource_uri}" - | limit 1 - """ - )) - - sc_contributor_role_assignment = None - if sc_contributor_query_response.total_records == 1: - sc_contributor_role_assignment = authorization_management_client.role_assignments.delete_by_id( - role_assignment_id=sc_contributor_query_response.data[0]["id"], - ) - else: - print("No role assignment found for the extension identity with Storage Class Contributor role under the cluster scope.") - - print("Delete role assignment for storage class RP with Kubernetes Extension Contributor role under the cluster scope...") - - k8s_extension_contributor_query_response = resource_graph_client.resources(QueryRequest( - subscriptions=[resource_id.subscription_id], - query=f""" - authorizationresources - | where properties.principalId =~ "{KUBERNETES_RUNTIME_FPA_APP_ID}" and properties.roleDefinitionId =~ "{KUBERNETES_EXTENSION_CONTRIBUTOR_ROLE_ID}" and properties.scope =~ "{resource_uri}" - | limit 1 - """ - )) - - k8s_extension_contributor_role_assignment = None - if k8s_extension_contributor_query_response.total_records == 1: - k8s_extension_contributor_role_assignment = authorization_management_client.role_assignments.delete_by_id( - role_assignment_id=k8s_extension_contributor_query_response.data[0]["id"], - ) - else: - print("No role assignment found for storage class RP with Kubernetes Extension Contributor role under the cluster scope.") - - return { - "extension": extension, - "storage_class_contributor_role_assignment": sc_contributor_role_assignment, - "kubernetes_extension_contributor_role_assignment": k8s_extension_contributor_role_assignment, - } diff --git a/src/k8s-runtime/azext_k8s_runtime/tests/latest/test_k8s_runtime.py b/src/k8s-runtime/azext_k8s_runtime/tests/latest/test_k8s_runtime.py index 3506c2ca554..331c674a36e 100644 --- a/src/k8s-runtime/azext_k8s_runtime/tests/latest/test_k8s_runtime.py +++ b/src/k8s-runtime/azext_k8s_runtime/tests/latest/test_k8s_runtime.py @@ -8,7 +8,6 @@ import os import subprocess import tempfile -import azext_k8s_runtime.custom_commands.storage_class as sc import azext_k8s_runtime.custom_commands.load_balancer as lb from azure.cli.testsdk import ScenarioTest, ResourceGroupPreparer, live_only @@ -47,68 +46,6 @@ def create_connected_cluster(self, resource_group): "resource_uri": connected_cluster_resource_uri, }) - @live_only() - @ResourceGroupPreparer(name_prefix='k8srttest', random_name_length=16) - def test_storage_class_enable_disable(self, resource_group): - self.create_connected_cluster(resource_group) - - enable_result = self.cmd("az k8s-runtime storage-class enable --resource-uri {resource_uri}", checks=[ - self.check("extension.name", sc.STORAGE_CLASS_EXTENSION_NAME), - self.check("extension.extensionType", sc.STORAGE_CLASS_EXTENSION_TYPE), - self.check("extension.provisioningState", "Succeeded"), - self.check("extension.identity.type", "SystemAssigned"), - ]).get_output_in_json() - - assert enable_result["extension"]["identity"]["principalId"] == enable_result["storage_class_contributor_role_assignment"]["principalId"] - - k8s_ext_contrib_role_assignment = enable_result["kubernetes_extension_contributor_role_assignment"] - - assert k8s_ext_contrib_role_assignment["id"].startswith(self.kwargs["resource_uri"] + "/providers/Microsoft.Authorization/roleAssignments/") - assert k8s_ext_contrib_role_assignment["roleDefinitionId"].endswith(sc.KUBERNETES_EXTENSION_CONTRIBUTOR_ROLE_ID) - assert k8s_ext_contrib_role_assignment["principalId"] == sc.KUBERNETES_RUNTIME_FPA_APP_ID - - self.cmd("az k8s-runtime storage-class disable --resource-uri {resource_uri}", checks=[ - self.check("extension.id", enable_result["extension"]["id"]), - self.check("storage_class_contributor_role_assignment.id", - enable_result["storage_class_contributor_role_assignment"]["id"]), - self.check("kubernetes_extension_contributor_role_assignment.id", - enable_result["kubernetes_extension_contributor_role_assignment"]["id"]), - ]) - - os.remove(self.kwargs["kubeconfig"]) - - def test_storage_class_enable_disable_only_connected_cluster(self): - self.kwargs["resource_uri"] = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Kubernetes/managedClusters/cluster" - - self.cmd("az k8s-runtime storage-class enable --resource-uri {resource_uri}", expect_failure=True) - self.cmd("az k8s-runtime storage-class disable --resource-uri {resource_uri}", expect_failure=True) - - @live_only() - @ResourceGroupPreparer(name_prefix='k8srttest', random_name_length=16) - def test_storage_class_delete_storage_class(self, resource_group): - self.create_connected_cluster(resource_group) - - self.cmd("az k8s-runtime storage-class enable --resource-uri {resource_uri}", checks=[ - self.check("extension.provisioningState", "Succeeded"), - ]) - - test_sc = "rwx-test" - self.kwargs.update({"test_sc": test_sc}) - - # The default storage classes of AKS cannot be deleted. - # Has to create a new one and delete it. - self.cmd("az k8s-runtime storage-class create --resource-uri {resource_uri} --storage-class-name {test_sc} --type-properties rwx.backing-storage-class-name=managed") - - self.cmd("az k8s-runtime storage-class delete --yes --resource-uri {resource_uri} --storage-class-name {test_sc}") - - self.failIf( - subprocess.call(f"kubectl get storageclass {test_sc} --kubeconfig {self.kwargs.get('kubeconfig')}") == 0, - "Storage class {test_sc} is not deleted in the AKS cluster" - ) - self.cmd("az k8s-runtime storage-class show --resource-uri {resource_uri} --storage-class-name {test_sc}", expect_failure=True) - - os.remove(self.kwargs["kubeconfig"]) - @live_only() @ResourceGroupPreparer(name_prefix='k8srttest', random_name_length=16) def test_load_balancer_enable_disable(self, resource_group): diff --git a/src/k8s-runtime/setup.py b/src/k8s-runtime/setup.py index e191b59af34..2cc9f483922 100644 --- a/src/k8s-runtime/setup.py +++ b/src/k8s-runtime/setup.py @@ -10,7 +10,7 @@ # HISTORY.rst entry. -VERSION = '1.0.4' +VERSION = '2.0.0' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers