diff --git a/src/automation/HISTORY.rst b/src/automation/HISTORY.rst index 1c139576ba0..5c5dc86c2c8 100644 --- a/src/automation/HISTORY.rst +++ b/src/automation/HISTORY.rst @@ -6,3 +6,8 @@ Release History 0.1.0 ++++++ * Initial release. + +0.1.2 +++++++ +* Added Hybrid Runbook Worker Group and Hybrid Runbook Workers related commands. + diff --git a/src/automation/README.md b/src/automation/README.md index da6f073ff47..25eb3b8f437 100644 --- a/src/automation/README.md +++ b/src/automation/README.md @@ -87,4 +87,91 @@ az automation job resume \ --name jobName ``` +##### Create a hybrid runbook worker group +``` +az automation hrwg create \ + --automation-account-name accountName \ + --resource-group groupName \ + --name hybridrunbookworkergroupName +``` + +##### List all hybrid runbook worker groups +``` +az automation hrwg list \ + --automation-account-name accountName \ + --resource-group groupName +``` + +##### Get hybrid worker group +``` +az automation hrwg show \ + --automation-account-name accountName \ + --resource-group groupName \ + --name hybridrunbookworkergroupName +``` + +##### Update hybrid worker group +``` +az automation hrwg update \ + --automation-account-name accountName \ + --resource-group groupName \ + --name hybridrunbookworkergroupName \ + --credential "{name: credentialname}" +``` + +##### Delete hybrid worker group +``` +az automation hrwg delete \ + --automation-account-name accountName \ + --resource-group groupName \ + --name hybridrunbookworkergroupName +``` + +##### Create a hybrid runbook worker +``` +az automation hrwg hrw create \ + --automation-account-name accountName \ + --resource-group groupName \ + --hybrid-runbook-worker-group-name hybridRunbookWorkerGroupName \ + --name hybridRunbookWorkerName \ + --vm-resource-id vmResourceId +``` + +##### List all hybrid runbook workers in a worker group +``` +az automation hrwg hrw list \ + --automation-account-name accountName \ + --resource-group groupName \ + --hybrid-runbook-worker-group-name hybridRunbookWorkerGroupName +``` + +##### Get hybrid runbook worker +``` +az automation hrwg hrw show \ + --automation-account-name accountName \ + --resource-group groupName \ + --hybrid-runbook-worker-group-name hybridRunbookWorkerGroupName \ + --name hybridRunbookWorkerName +``` + +##### delete a hybrid worker +``` +az automation hrwg hrw delete \ + --automation-account-name accountName \ + --resource-group groupName \ + --hybrid-runbook-worker-group-name hybridRunbookWorkerGroupName \ + --name hybridRunbookWorkerName +``` + +##### Move a hybrid runbook worker to a different hybrid runbook worker group +``` +az automation hrwg hrw move \ + --automation-account-name accountName \ + --resource-group groupName \ + --hybrid-runbook-worker-group-name hybridRunbookWorkerGroupName \ + --name hybridRunbookWorkerName +``` + + + If you have issues, please give feedback by opening an issue at https://github.com/Azure/azure-cli-extensions/issues. diff --git a/src/automation/azext_automation/__init__.py b/src/automation/azext_automation/__init__.py index 654f3cf6804..b306c71b73d 100644 --- a/src/automation/azext_automation/__init__.py +++ b/src/automation/azext_automation/__init__.py @@ -29,6 +29,17 @@ def __init__(self, cli_ctx=None): def load_command_table(self, args): from azext_automation.generated.commands import load_command_table + from azure.cli.core.aaz import load_aaz_command_table + try: + from . import aaz + except ImportError: + aaz = None + if aaz: + load_aaz_command_table( + loader=self, + aaz_pkg_name=aaz.__name__, + args=args + ) load_command_table(self, args) try: from azext_automation.manual.commands import load_command_table as load_command_table_manual diff --git a/src/automation/azext_automation/aaz/__init__.py b/src/automation/azext_automation/aaz/__init__.py new file mode 100644 index 00000000000..5757aea3175 --- /dev/null +++ b/src/automation/azext_automation/aaz/__init__.py @@ -0,0 +1,6 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/automation/azext_automation/aaz/latest/__init__.py b/src/automation/azext_automation/aaz/latest/__init__.py new file mode 100644 index 00000000000..5757aea3175 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/__init__.py @@ -0,0 +1,6 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/automation/azext_automation/aaz/latest/automation/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/__cmd_group.py new file mode 100644 index 00000000000..c2ac75642d4 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "automation", +) +class __CMDGroup(AAZCommandGroup): + """Automation Account. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/__init__.py b/src/automation/azext_automation/aaz/latest/automation/__init__.py new file mode 100644 index 00000000000..5a9d61963d6 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/__init__.py @@ -0,0 +1,11 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/__cmd_group.py new file mode 100644 index 00000000000..b0998384a91 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "automation hrwg", +) +class __CMDGroup(AAZCommandGroup): + """Automation Hybrid Runbook Worker Group + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/__init__.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/__init__.py new file mode 100644 index 00000000000..c401f439385 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/__init__.py @@ -0,0 +1,16 @@ +# -------------------------------------------------------------------------------------------- +# 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 * diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/_create.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/_create.py new file mode 100644 index 00000000000..be2a5ad0f6a --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/_create.py @@ -0,0 +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( + "automation hrwg create", +) +class Create(AAZCommand): + """Create a hybrid runbook worker group. + """ + + _aaz_info = { + "version": "2022-02-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}", "2022-02-22"], + ] + } + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["-n", "--name", "--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + id_part="child_name_1", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.credential = AAZObjectArg( + options=["--credential"], + arg_group="Properties", + help="Set the credential of a worker group.", + ) + + credential = cls._args_schema.credential + credential.name = AAZStrArg( + options=["name"], + help="Get or set the name of the credential.", + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkerGroupCreate(ctx=self.ctx)() + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class HybridRunbookWorkerGroupCreate(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 [201]: + return self.on_201(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2022-02-22", + 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("name", AAZStrType, ".hybrid_runbook_worker_group_name") + _builder.set_prop("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}}) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("credential", AAZObjectType, ".credential") + + credential = _builder.get(".properties.credential") + if credential is not None: + credential.set_prop("name", AAZStrType, ".name") + + return self.serialize_content(_content_value) + + def on_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_201 + ) + + _schema_on_201 = None + + @classmethod + def _build_schema_on_201(cls): + if cls._schema_on_201 is not None: + return cls._schema_on_201 + + cls._schema_on_201 = AAZObjectType() + + _schema_on_201 = cls._schema_on_201 + _schema_on_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_201.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + _schema_on_201.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_201.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_201.properties + properties.credential = AAZObjectType() + properties.group_type = AAZStrType( + serialized_name="groupType", + ) + + credential = cls._schema_on_201.properties.credential + credential.name = AAZStrType() + + system_data = cls._schema_on_201.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + flags={"read_only": True}, + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + flags={"read_only": True}, + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + flags={"read_only": True}, + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + flags={"read_only": True}, + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + flags={"read_only": True}, + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + flags={"read_only": True}, + ) + + return cls._schema_on_201 + + +__all__ = ["Create"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/_delete.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/_delete.py new file mode 100644 index 00000000000..edcc6e94be6 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/_delete.py @@ -0,0 +1,127 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "automation hrwg delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Delete a hybrid runbook worker group. + """ + + _aaz_info = { + "version": "2022-02-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}", "2022-02-22"], + ] + } + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["-n", "--name", "--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + id_part="child_name_1", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkerGroupDelete(ctx=self.ctx)() + + class HybridRunbookWorkerGroupDelete(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}", + **self.url_parameters + ) + + @property + def method(self): + return "DELETE" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2022-02-22", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + +__all__ = ["Delete"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/_list.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/_list.py new file mode 100644 index 00000000000..d056fe847e9 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/_list.py @@ -0,0 +1,213 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "automation hrwg list", +) +class List(AAZCommand): + """Retrieve a list of hybrid runbook worker groups. + """ + + _aaz_info = { + "version": "2022-02-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups", "2022-02-22"], + ] + } + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.filter = AAZStrArg( + options=["--filter"], + help="The filter to apply on the operation.", + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkerGroupListByAutomationAccount(ctx=self.ctx)() + + 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 HybridRunbookWorkerGroupListByAutomationAccount(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "$filter", self.ctx.args.filter, + ), + **self.serialize_query_param( + "api-version", "2022-02-22", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.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.credential = AAZObjectType() + properties.group_type = AAZStrType( + serialized_name="groupType", + ) + + credential = cls._schema_on_200.value.Element.properties.credential + credential.name = AAZStrType() + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + flags={"read_only": True}, + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + flags={"read_only": True}, + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + flags={"read_only": True}, + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + flags={"read_only": True}, + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + flags={"read_only": True}, + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + flags={"read_only": True}, + ) + + return cls._schema_on_200 + + +__all__ = ["List"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/_show.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/_show.py new file mode 100644 index 00000000000..cc3d13250e4 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/_show.py @@ -0,0 +1,208 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "automation hrwg show", +) +class Show(AAZCommand): + """Retrieve a hybrid runbook worker group. + """ + + _aaz_info = { + "version": "2022-02-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}", "2022-02-22"], + ] + } + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["-n", "--name", "--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + id_part="child_name_1", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkerGroupGet(ctx=self.ctx)() + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class HybridRunbookWorkerGroupGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2022-02-22", + 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.credential = AAZObjectType() + properties.group_type = AAZStrType( + serialized_name="groupType", + ) + + credential = cls._schema_on_200.properties.credential + credential.name = AAZStrType() + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + flags={"read_only": True}, + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + flags={"read_only": True}, + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + flags={"read_only": True}, + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + flags={"read_only": True}, + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + flags={"read_only": True}, + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + flags={"read_only": True}, + ) + + return cls._schema_on_200 + + +__all__ = ["Show"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/_update.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/_update.py new file mode 100644 index 00000000000..27dad24b0a6 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/_update.py @@ -0,0 +1,384 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "automation hrwg update", +) +class Update(AAZCommand): + """Create a hybrid runbook worker group. + """ + + _aaz_info = { + "version": "2022-02-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}", "2022-02-22"], + ] + } + + AZ_SUPPORT_GENERIC_UPDATE = True + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["-n", "--name", "--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + id_part="child_name_1", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.credential = AAZObjectArg( + options=["--credential"], + arg_group="Properties", + help="Sets the credential of a worker group.", + nullable=True, + ) + + credential = cls._args_schema.credential + credential.name = AAZStrArg( + options=["name"], + help="Gets or sets the name of the credential.", + nullable=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkerGroupGet(ctx=self.ctx)() + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.HybridRunbookWorkerGroupCreate(ctx=self.ctx)() + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class HybridRunbookWorkerGroupGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2022-02-22", + 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() + _build_schema_hybrid_runbook_worker_group_read(cls._schema_on_200) + + return cls._schema_on_200 + + class HybridRunbookWorkerGroupCreate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2022-02-22", + 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(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() + _build_schema_hybrid_runbook_worker_group_read(cls._schema_on_200) + + return cls._schema_on_200 + + 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("name", AAZStrType, ".hybrid_runbook_worker_group_name") + _builder.set_prop("properties", AAZObjectType, typ_kwargs={"flags": {"client_flatten": True}}) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("credential", AAZObjectType, ".credential") + + credential = _builder.get(".properties.credential") + if credential is not None: + credential.set_prop("name", AAZStrType, ".name") + + 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 + ) + + +_schema_hybrid_runbook_worker_group_read = None + + +def _build_schema_hybrid_runbook_worker_group_read(_schema): + global _schema_hybrid_runbook_worker_group_read + if _schema_hybrid_runbook_worker_group_read is not None: + _schema.id = _schema_hybrid_runbook_worker_group_read.id + _schema.name = _schema_hybrid_runbook_worker_group_read.name + _schema.properties = _schema_hybrid_runbook_worker_group_read.properties + _schema.system_data = _schema_hybrid_runbook_worker_group_read.system_data + _schema.type = _schema_hybrid_runbook_worker_group_read.type + return + + _schema_hybrid_runbook_worker_group_read = AAZObjectType() + + hybrid_runbook_worker_group_read = _schema_hybrid_runbook_worker_group_read + hybrid_runbook_worker_group_read.id = AAZStrType( + flags={"read_only": True}, + ) + hybrid_runbook_worker_group_read.name = AAZStrType( + flags={"read_only": True}, + ) + hybrid_runbook_worker_group_read.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + hybrid_runbook_worker_group_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + hybrid_runbook_worker_group_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_hybrid_runbook_worker_group_read.properties + properties.credential = AAZObjectType() + properties.group_type = AAZStrType( + serialized_name="groupType", + ) + + credential = _schema_hybrid_runbook_worker_group_read.properties.credential + credential.name = AAZStrType() + + system_data = _schema_hybrid_runbook_worker_group_read.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + flags={"read_only": True}, + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + flags={"read_only": True}, + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + flags={"read_only": True}, + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + flags={"read_only": True}, + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + flags={"read_only": True}, + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + flags={"read_only": True}, + ) + + _schema.id = _schema_hybrid_runbook_worker_group_read.id + _schema.name = _schema_hybrid_runbook_worker_group_read.name + _schema.properties = _schema_hybrid_runbook_worker_group_read.properties + _schema.system_data = _schema_hybrid_runbook_worker_group_read.system_data + _schema.type = _schema_hybrid_runbook_worker_group_read.type + + +__all__ = ["Update"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/__cmd_group.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/__cmd_group.py new file mode 100644 index 00000000000..49c641aa764 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "automation hrwg hrw", +) +class __CMDGroup(AAZCommandGroup): + """Automation Hybrid Runbook Worker + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/__init__.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/__init__.py new file mode 100644 index 00000000000..a0ec108bbe4 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/__init__.py @@ -0,0 +1,17 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._create import * +from ._delete import * +from ._list import * +from ._move import * +from ._show import * +from ._update import * diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_create.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_create.py new file mode 100644 index 00000000000..e204905e607 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_create.py @@ -0,0 +1,255 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "automation hrwg hrw create", +) +class Create(AAZCommand): + """Create a hybrid runbook worker. + """ + + _aaz_info = { + "version": "2021-06-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}/hybridrunbookworkers/{}", "2021-06-22"], + ] + } + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + id_part="child_name_1", + ) + _args_schema.hybrid_runbook_worker_id = AAZStrArg( + options=["-n", "--name", "--hybrid-runbook-worker-id"], + help="The hybrid runbook worker id", + required=True, + id_part="child_name_2", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.vm_resource_id = AAZStrArg( + options=["--vm-resource-id"], + arg_group="Properties", + help="Azure Resource Manager Id for a virtual machine.", + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkersCreate(ctx=self.ctx)() + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class HybridRunbookWorkersCreate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}/hybridRunbookWorkers/{hybridRunbookWorkerId}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerId", self.ctx.args.hybrid_runbook_worker_id, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-06-22", + 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("name", AAZStrType, ".hybrid_runbook_worker_id") + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("vmResourceId", AAZStrType, ".vm_resource_id") + + 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.ip = AAZStrType() + properties.last_seen_date_time = AAZStrType( + serialized_name="lastSeenDateTime", + ) + properties.registered_date_time = AAZStrType( + serialized_name="registeredDateTime", + ) + properties.vm_resource_id = AAZStrType( + serialized_name="vmResourceId", + ) + properties.worker_name = AAZStrType( + serialized_name="workerName", + ) + properties.worker_type = AAZStrType( + serialized_name="workerType", + ) + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + flags={"read_only": True}, + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + flags={"read_only": True}, + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + flags={"read_only": True}, + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + flags={"read_only": True}, + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + flags={"read_only": True}, + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + flags={"read_only": True}, + ) + + return cls._schema_on_200 + + +__all__ = ["Create"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_delete.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_delete.py new file mode 100644 index 00000000000..826c80aeccb --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_delete.py @@ -0,0 +1,142 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "automation hrwg hrw delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Delete a hybrid runbook worker. + """ + + _aaz_info = { + "version": "2021-06-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}/hybridrunbookworkers/{}", "2021-06-22"], + ] + } + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + id_part="child_name_1", + ) + _args_schema.hybrid_runbook_worker_id = AAZStrArg( + options=["-n", "--name", "--hybrid-runbook-worker-id"], + help="The hybrid runbook worker id", + required=True, + id_part="child_name_2", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkersDelete(ctx=self.ctx)() + + class HybridRunbookWorkersDelete(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( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}/hybridRunbookWorkers/{hybridRunbookWorkerId}", + **self.url_parameters + ) + + @property + def method(self): + return "DELETE" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerId", self.ctx.args.hybrid_runbook_worker_id, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-06-22", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + def on_204(self, session): + pass + + +__all__ = ["Delete"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_list.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_list.py new file mode 100644 index 00000000000..799abdb8581 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_list.py @@ -0,0 +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( + "automation hrwg hrw list", +) +class List(AAZCommand): + """Retrieve a list of hybrid runbook workers. + """ + + _aaz_info = { + "version": "2021-06-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}/hybridrunbookworkers", "2021-06-22"], + ] + } + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.filter = AAZStrArg( + options=["--filter"], + help="The filter to apply on the operation.", + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkersListByHybridRunbookWorkerGroup(ctx=self.ctx)() + + 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 HybridRunbookWorkersListByHybridRunbookWorkerGroup(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}/hybridRunbookWorkers", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "$filter", self.ctx.args.filter, + ), + **self.serialize_query_param( + "api-version", "2021-06-22", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.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.ip = AAZStrType() + properties.last_seen_date_time = AAZStrType( + serialized_name="lastSeenDateTime", + ) + properties.registered_date_time = AAZStrType( + serialized_name="registeredDateTime", + ) + properties.vm_resource_id = AAZStrType( + serialized_name="vmResourceId", + ) + properties.worker_name = AAZStrType( + serialized_name="workerName", + ) + properties.worker_type = AAZStrType( + serialized_name="workerType", + ) + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + flags={"read_only": True}, + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + flags={"read_only": True}, + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + flags={"read_only": True}, + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + flags={"read_only": True}, + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + flags={"read_only": True}, + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + flags={"read_only": True}, + ) + + return cls._schema_on_200 + + +__all__ = ["List"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_move.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_move.py new file mode 100644 index 00000000000..6ace97a57ff --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_move.py @@ -0,0 +1,153 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "automation hrwg hrw move", +) +class Move(AAZCommand): + """Move a hybrid worker to a different group. + """ + + _aaz_info = { + "version": "2021-06-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}/hybridrunbookworkers/{}/move", "2021-06-22"], + ] + } + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + ) + _args_schema.hybrid_runbook_worker_id = AAZStrArg( + options=["--hybrid-runbook-worker-id"], + help="The hybrid runbook worker id", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkersMove(ctx=self.ctx)() + + class HybridRunbookWorkersMove(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}/hybridRunbookWorkers/{hybridRunbookWorkerId}/move", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerId", self.ctx.args.hybrid_runbook_worker_id, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-06-22", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "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("hybridRunbookWorkerGroupName", AAZStrType, ".hybrid_runbook_worker_group_name") + + return self.serialize_content(_content_value) + + def on_200(self, session): + pass + + +__all__ = ["Move"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_show.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_show.py new file mode 100644 index 00000000000..af76b559722 --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_show.py @@ -0,0 +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( + "automation hrwg hrw show", +) +class Show(AAZCommand): + """Retrieve a hybrid runbook worker. + """ + + _aaz_info = { + "version": "2021-06-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}/hybridrunbookworkers/{}", "2021-06-22"], + ] + } + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + id_part="child_name_1", + ) + _args_schema.hybrid_runbook_worker_id = AAZStrArg( + options=["-n", "--name", "--hybrid-runbook-worker-id"], + help="The hybrid runbook worker id", + required=True, + id_part="child_name_2", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkersGet(ctx=self.ctx)() + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class HybridRunbookWorkersGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}/hybridRunbookWorkers/{hybridRunbookWorkerId}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerId", self.ctx.args.hybrid_runbook_worker_id, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-06-22", + 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.ip = AAZStrType() + properties.last_seen_date_time = AAZStrType( + serialized_name="lastSeenDateTime", + ) + properties.registered_date_time = AAZStrType( + serialized_name="registeredDateTime", + ) + properties.vm_resource_id = AAZStrType( + serialized_name="vmResourceId", + ) + properties.worker_name = AAZStrType( + serialized_name="workerName", + ) + properties.worker_type = AAZStrType( + serialized_name="workerType", + ) + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + flags={"read_only": True}, + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + flags={"read_only": True}, + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + flags={"read_only": True}, + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + flags={"read_only": True}, + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + flags={"read_only": True}, + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + flags={"read_only": True}, + ) + + return cls._schema_on_200 + + +__all__ = ["Show"] diff --git a/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_update.py b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_update.py new file mode 100644 index 00000000000..50fa1af063f --- /dev/null +++ b/src/automation/azext_automation/aaz/latest/automation/hrwg/hrw/_update.py @@ -0,0 +1,396 @@ +# -------------------------------------------------------------------------------------------- +# 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( + "automation hrwg hrw update", +) +class Update(AAZCommand): + """Create a hybrid runbook worker. + """ + + _aaz_info = { + "version": "2021-06-22", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.automation/automationaccounts/{}/hybridrunbookworkergroups/{}/hybridrunbookworkers/{}", "2021-06-22"], + ] + } + + AZ_SUPPORT_GENERIC_UPDATE = True + + 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.automation_account_name = AAZStrArg( + options=["--automation-account-name"], + help="The name of the automation account.", + required=True, + id_part="name", + ) + _args_schema.hybrid_runbook_worker_group_name = AAZStrArg( + options=["--hybrid-runbook-worker-group-name"], + help="The hybrid runbook worker group name", + required=True, + id_part="child_name_1", + ) + _args_schema.hybrid_runbook_worker_id = AAZStrArg( + options=["-n", "--name", "--hybrid-runbook-worker-id"], + help="The hybrid runbook worker id", + required=True, + id_part="child_name_2", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.vm_resource_id = AAZStrArg( + options=["--vm-resource-id"], + arg_group="Properties", + help="Azure Resource Manager Id for a virtual machine.", + nullable=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.HybridRunbookWorkersGet(ctx=self.ctx)() + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.HybridRunbookWorkersCreate(ctx=self.ctx)() + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class HybridRunbookWorkersGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}/hybridRunbookWorkers/{hybridRunbookWorkerId}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerId", self.ctx.args.hybrid_runbook_worker_id, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-06-22", + 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() + _build_schema_hybrid_runbook_worker_read(cls._schema_on_200) + + return cls._schema_on_200 + + class HybridRunbookWorkersCreate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/hybridRunbookWorkerGroups/{hybridRunbookWorkerGroupName}/hybridRunbookWorkers/{hybridRunbookWorkerId}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "ODataV4Format" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "automationAccountName", self.ctx.args.automation_account_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerGroupName", self.ctx.args.hybrid_runbook_worker_group_name, + required=True, + ), + **self.serialize_url_param( + "hybridRunbookWorkerId", self.ctx.args.hybrid_runbook_worker_id, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-06-22", + 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(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() + _build_schema_hybrid_runbook_worker_read(cls._schema_on_200) + + return cls._schema_on_200 + + 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("name", AAZStrType, ".hybrid_runbook_worker_id") + _builder.set_prop("properties", AAZObjectType, ".", typ_kwargs={"flags": {"required": True, "client_flatten": True}}) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("vmResourceId", AAZStrType, ".vm_resource_id") + + 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 + ) + + +_schema_hybrid_runbook_worker_read = None + + +def _build_schema_hybrid_runbook_worker_read(_schema): + global _schema_hybrid_runbook_worker_read + if _schema_hybrid_runbook_worker_read is not None: + _schema.id = _schema_hybrid_runbook_worker_read.id + _schema.name = _schema_hybrid_runbook_worker_read.name + _schema.properties = _schema_hybrid_runbook_worker_read.properties + _schema.system_data = _schema_hybrid_runbook_worker_read.system_data + _schema.type = _schema_hybrid_runbook_worker_read.type + return + + _schema_hybrid_runbook_worker_read = AAZObjectType() + + hybrid_runbook_worker_read = _schema_hybrid_runbook_worker_read + hybrid_runbook_worker_read.id = AAZStrType( + flags={"read_only": True}, + ) + hybrid_runbook_worker_read.name = AAZStrType( + flags={"read_only": True}, + ) + hybrid_runbook_worker_read.properties = AAZObjectType( + flags={"client_flatten": True}, + ) + hybrid_runbook_worker_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + hybrid_runbook_worker_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_hybrid_runbook_worker_read.properties + properties.ip = AAZStrType() + properties.last_seen_date_time = AAZStrType( + serialized_name="lastSeenDateTime", + ) + properties.registered_date_time = AAZStrType( + serialized_name="registeredDateTime", + ) + properties.vm_resource_id = AAZStrType( + serialized_name="vmResourceId", + ) + properties.worker_name = AAZStrType( + serialized_name="workerName", + ) + properties.worker_type = AAZStrType( + serialized_name="workerType", + ) + + system_data = _schema_hybrid_runbook_worker_read.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + flags={"read_only": True}, + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + flags={"read_only": True}, + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + flags={"read_only": True}, + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + flags={"read_only": True}, + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + flags={"read_only": True}, + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + flags={"read_only": True}, + ) + + _schema.id = _schema_hybrid_runbook_worker_read.id + _schema.name = _schema_hybrid_runbook_worker_read.name + _schema.properties = _schema_hybrid_runbook_worker_read.properties + _schema.system_data = _schema_hybrid_runbook_worker_read.system_data + _schema.type = _schema_hybrid_runbook_worker_read.type + + +__all__ = ["Update"] diff --git a/src/automation/azext_automation/azext_metadata.json b/src/automation/azext_automation/azext_metadata.json index 1f262644adf..a0d4f25e0f3 100644 --- a/src/automation/azext_automation/azext_metadata.json +++ b/src/automation/azext_automation/azext_metadata.json @@ -1,4 +1,4 @@ { "azext.isExperimental": true, - "azext.minCliCoreVersion": "2.13.0" + "azext.minCliCoreVersion": "2.39.0" } \ No newline at end of file diff --git a/src/automation/azext_automation/tests/latest/recordings/test_automation.yaml b/src/automation/azext_automation/tests/latest/recordings/test_automation.yaml index c182918ea26..d2c48358911 100644 --- a/src/automation/azext_automation/tests/latest/recordings/test_automation.yaml +++ b/src/automation/azext_automation/tests/latest/recordings/test_automation.yaml @@ -11,110 +11,449 @@ interactions: Connection: - keep-alive User-Agent: - - AZURECLI/2.26.1 azsdk-python-azure-mgmt-resource/18.0.0 Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-azure-mgmt-resource/21.1.0b1 Python/3.10.5 (Windows-10-10.0.22000-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/locations?api-version=2019-11-01 response: body: - string: "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus\",\"name\":\"eastus\",\"displayName\":\"East - US\",\"regionalDisplayName\":\"(US) East US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-79.8164\",\"latitude\":\"37.3719\",\"physicalLocation\":\"Virginia\",\"pairedRegion\":[{\"name\":\"westus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2\",\"name\":\"eastus2\",\"displayName\":\"East - US 2\",\"regionalDisplayName\":\"(US) East US 2\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-78.3889\",\"latitude\":\"36.6681\",\"physicalLocation\":\"Virginia\",\"pairedRegion\":[{\"name\":\"centralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus\",\"name\":\"southcentralus\",\"displayName\":\"South - Central US\",\"regionalDisplayName\":\"(US) South Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-98.5\",\"latitude\":\"29.4167\",\"physicalLocation\":\"Texas\",\"pairedRegion\":[{\"name\":\"northcentralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2\",\"name\":\"westus2\",\"displayName\":\"West - US 2\",\"regionalDisplayName\":\"(US) West US 2\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-119.852\",\"latitude\":\"47.233\",\"physicalLocation\":\"Washington\",\"pairedRegion\":[{\"name\":\"westcentralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus3\",\"name\":\"westus3\",\"displayName\":\"West - US 3\",\"regionalDisplayName\":\"(US) West US 3\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-112.074036\",\"latitude\":\"33.448376\",\"physicalLocation\":\"Phoenix\",\"pairedRegion\":[{\"name\":\"eastus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast\",\"name\":\"australiaeast\",\"displayName\":\"Australia - East\",\"regionalDisplayName\":\"(Asia Pacific) Australia East\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"151.2094\",\"latitude\":\"-33.86\",\"physicalLocation\":\"New - South Wales\",\"pairedRegion\":[{\"name\":\"australiasoutheast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia\",\"name\":\"southeastasia\",\"displayName\":\"Southeast - Asia\",\"regionalDisplayName\":\"(Asia Pacific) Southeast Asia\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"103.833\",\"latitude\":\"1.283\",\"physicalLocation\":\"Singapore\",\"pairedRegion\":[{\"name\":\"eastasia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope\",\"name\":\"northeurope\",\"displayName\":\"North - Europe\",\"regionalDisplayName\":\"(Europe) North Europe\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"-6.2597\",\"latitude\":\"53.3478\",\"physicalLocation\":\"Ireland\",\"pairedRegion\":[{\"name\":\"westeurope\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedencentral\",\"name\":\"swedencentral\",\"displayName\":\"Sweden - Central\",\"regionalDisplayName\":\"(Europe) Sweden Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"17.14127\",\"latitude\":\"60.67488\",\"physicalLocation\":\"G\xE4vle\",\"pairedRegion\":[{\"name\":\"swedensouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedensouth\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth\",\"name\":\"uksouth\",\"displayName\":\"UK - South\",\"regionalDisplayName\":\"(Europe) UK South\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"-0.799\",\"latitude\":\"50.941\",\"physicalLocation\":\"London\",\"pairedRegion\":[{\"name\":\"ukwest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope\",\"name\":\"westeurope\",\"displayName\":\"West - Europe\",\"regionalDisplayName\":\"(Europe) West Europe\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"4.9\",\"latitude\":\"52.3667\",\"physicalLocation\":\"Netherlands\",\"pairedRegion\":[{\"name\":\"northeurope\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus\",\"name\":\"centralus\",\"displayName\":\"Central - US\",\"regionalDisplayName\":\"(US) Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-93.6208\",\"latitude\":\"41.5908\",\"physicalLocation\":\"Iowa\",\"pairedRegion\":[{\"name\":\"eastus2\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus\",\"name\":\"northcentralus\",\"displayName\":\"North - Central US\",\"regionalDisplayName\":\"(US) North Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-87.6278\",\"latitude\":\"41.8819\",\"physicalLocation\":\"Illinois\",\"pairedRegion\":[{\"name\":\"southcentralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus\",\"name\":\"westus\",\"displayName\":\"West - US\",\"regionalDisplayName\":\"(US) West US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-122.417\",\"latitude\":\"37.783\",\"physicalLocation\":\"California\",\"pairedRegion\":[{\"name\":\"eastus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth\",\"name\":\"southafricanorth\",\"displayName\":\"South - Africa North\",\"regionalDisplayName\":\"(Africa) South Africa North\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Africa\",\"longitude\":\"28.218370\",\"latitude\":\"-25.731340\",\"physicalLocation\":\"Johannesburg\",\"pairedRegion\":[{\"name\":\"southafricawest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia\",\"name\":\"centralindia\",\"displayName\":\"Central - India\",\"regionalDisplayName\":\"(Asia Pacific) Central India\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"73.9197\",\"latitude\":\"18.5822\",\"physicalLocation\":\"Pune\",\"pairedRegion\":[{\"name\":\"southindia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia\",\"name\":\"eastasia\",\"displayName\":\"East - Asia\",\"regionalDisplayName\":\"(Asia Pacific) East Asia\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"114.188\",\"latitude\":\"22.267\",\"physicalLocation\":\"Hong - Kong\",\"pairedRegion\":[{\"name\":\"southeastasia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast\",\"name\":\"japaneast\",\"displayName\":\"Japan - East\",\"regionalDisplayName\":\"(Asia Pacific) Japan East\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"139.77\",\"latitude\":\"35.68\",\"physicalLocation\":\"Tokyo, - Saitama\",\"pairedRegion\":[{\"name\":\"japanwest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiawest\",\"name\":\"jioindiawest\",\"displayName\":\"Jio - India West\",\"regionalDisplayName\":\"(Asia Pacific) Jio India West\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"70.05773\",\"latitude\":\"22.470701\",\"physicalLocation\":\"Jamnagar\",\"pairedRegion\":[{\"name\":\"jioindiacentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiacentral\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral\",\"name\":\"koreacentral\",\"displayName\":\"Korea - Central\",\"regionalDisplayName\":\"(Asia Pacific) Korea Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"126.9780\",\"latitude\":\"37.5665\",\"physicalLocation\":\"Seoul\",\"pairedRegion\":[{\"name\":\"koreasouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral\",\"name\":\"canadacentral\",\"displayName\":\"Canada - Central\",\"regionalDisplayName\":\"(Canada) Canada Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Canada\",\"longitude\":\"-79.383\",\"latitude\":\"43.653\",\"physicalLocation\":\"Toronto\",\"pairedRegion\":[{\"name\":\"canadaeast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral\",\"name\":\"francecentral\",\"displayName\":\"France - Central\",\"regionalDisplayName\":\"(Europe) France Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"2.3730\",\"latitude\":\"46.3772\",\"physicalLocation\":\"Paris\",\"pairedRegion\":[{\"name\":\"francesouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral\",\"name\":\"germanywestcentral\",\"displayName\":\"Germany - West Central\",\"regionalDisplayName\":\"(Europe) Germany West Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"8.682127\",\"latitude\":\"50.110924\",\"physicalLocation\":\"Frankfurt\",\"pairedRegion\":[{\"name\":\"germanynorth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast\",\"name\":\"norwayeast\",\"displayName\":\"Norway - East\",\"regionalDisplayName\":\"(Europe) Norway East\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"10.752245\",\"latitude\":\"59.913868\",\"physicalLocation\":\"Norway\",\"pairedRegion\":[{\"name\":\"norwaywest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth\",\"name\":\"switzerlandnorth\",\"displayName\":\"Switzerland - North\",\"regionalDisplayName\":\"(Europe) Switzerland North\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"8.564572\",\"latitude\":\"47.451542\",\"physicalLocation\":\"Zurich\",\"pairedRegion\":[{\"name\":\"switzerlandwest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth\",\"name\":\"uaenorth\",\"displayName\":\"UAE - North\",\"regionalDisplayName\":\"(Middle East) UAE North\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Middle - East\",\"longitude\":\"55.316666\",\"latitude\":\"25.266666\",\"physicalLocation\":\"Dubai\",\"pairedRegion\":[{\"name\":\"uaecentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth\",\"name\":\"brazilsouth\",\"displayName\":\"Brazil - South\",\"regionalDisplayName\":\"(South America) Brazil South\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\":\"South - America\",\"longitude\":\"-46.633\",\"latitude\":\"-23.55\",\"physicalLocation\":\"Sao - Paulo State\",\"pairedRegion\":[{\"name\":\"southcentralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralusstage\",\"name\":\"centralusstage\",\"displayName\":\"Central - US (Stage)\",\"regionalDisplayName\":\"(US) Central US (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusstage\",\"name\":\"eastusstage\",\"displayName\":\"East - US (Stage)\",\"regionalDisplayName\":\"(US) East US (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2stage\",\"name\":\"eastus2stage\",\"displayName\":\"East - US 2 (Stage)\",\"regionalDisplayName\":\"(US) East US 2 (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralusstage\",\"name\":\"northcentralusstage\",\"displayName\":\"North - Central US (Stage)\",\"regionalDisplayName\":\"(US) North Central US (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralusstage\",\"name\":\"southcentralusstage\",\"displayName\":\"South - Central US (Stage)\",\"regionalDisplayName\":\"(US) South Central US (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westusstage\",\"name\":\"westusstage\",\"displayName\":\"West - US (Stage)\",\"regionalDisplayName\":\"(US) West US (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2stage\",\"name\":\"westus2stage\",\"displayName\":\"West - US 2 (Stage)\",\"regionalDisplayName\":\"(US) West US 2 (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asia\",\"name\":\"asia\",\"displayName\":\"Asia\",\"regionalDisplayName\":\"Asia\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asiapacific\",\"name\":\"asiapacific\",\"displayName\":\"Asia - Pacific\",\"regionalDisplayName\":\"Asia Pacific\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australia\",\"name\":\"australia\",\"displayName\":\"Australia\",\"regionalDisplayName\":\"Australia\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazil\",\"name\":\"brazil\",\"displayName\":\"Brazil\",\"regionalDisplayName\":\"Brazil\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canada\",\"name\":\"canada\",\"displayName\":\"Canada\",\"regionalDisplayName\":\"Canada\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/europe\",\"name\":\"europe\",\"displayName\":\"Europe\",\"regionalDisplayName\":\"Europe\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/global\",\"name\":\"global\",\"displayName\":\"Global\",\"regionalDisplayName\":\"Global\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/india\",\"name\":\"india\",\"displayName\":\"India\",\"regionalDisplayName\":\"India\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japan\",\"name\":\"japan\",\"displayName\":\"Japan\",\"regionalDisplayName\":\"Japan\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uk\",\"name\":\"uk\",\"displayName\":\"United - Kingdom\",\"regionalDisplayName\":\"United Kingdom\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/unitedstates\",\"name\":\"unitedstates\",\"displayName\":\"United - States\",\"regionalDisplayName\":\"United States\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasiastage\",\"name\":\"eastasiastage\",\"displayName\":\"East - Asia (Stage)\",\"regionalDisplayName\":\"(Asia Pacific) East Asia (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasiastage\",\"name\":\"southeastasiastage\",\"displayName\":\"Southeast - Asia (Stage)\",\"regionalDisplayName\":\"(Asia Pacific) Southeast Asia (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap\",\"name\":\"centraluseuap\",\"displayName\":\"Central - US EUAP\",\"regionalDisplayName\":\"(US) Central US EUAP\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-93.6208\",\"latitude\":\"41.5908\",\"pairedRegion\":[{\"name\":\"eastus2euap\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap\",\"name\":\"eastus2euap\",\"displayName\":\"East - US 2 EUAP\",\"regionalDisplayName\":\"(US) East US 2 EUAP\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-78.3889\",\"latitude\":\"36.6681\",\"pairedRegion\":[{\"name\":\"centraluseuap\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus\",\"name\":\"westcentralus\",\"displayName\":\"West - Central US\",\"regionalDisplayName\":\"(US) West Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-110.234\",\"latitude\":\"40.890\",\"physicalLocation\":\"Wyoming\",\"pairedRegion\":[{\"name\":\"westus2\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest\",\"name\":\"southafricawest\",\"displayName\":\"South - Africa West\",\"regionalDisplayName\":\"(Africa) South Africa West\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Africa\",\"longitude\":\"18.843266\",\"latitude\":\"-34.075691\",\"physicalLocation\":\"Cape - Town\",\"pairedRegion\":[{\"name\":\"southafricanorth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral\",\"name\":\"australiacentral\",\"displayName\":\"Australia - Central\",\"regionalDisplayName\":\"(Asia Pacific) Australia Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"149.1244\",\"latitude\":\"-35.3075\",\"physicalLocation\":\"Canberra\",\"pairedRegion\":[{\"name\":\"australiacentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2\",\"name\":\"australiacentral2\",\"displayName\":\"Australia - Central 2\",\"regionalDisplayName\":\"(Asia Pacific) Australia Central 2\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"149.1244\",\"latitude\":\"-35.3075\",\"physicalLocation\":\"Canberra\",\"pairedRegion\":[{\"name\":\"australiacentral2\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast\",\"name\":\"australiasoutheast\",\"displayName\":\"Australia - Southeast\",\"regionalDisplayName\":\"(Asia Pacific) Australia Southeast\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"144.9631\",\"latitude\":\"-37.8136\",\"physicalLocation\":\"Victoria\",\"pairedRegion\":[{\"name\":\"australiaeast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest\",\"name\":\"japanwest\",\"displayName\":\"Japan - West\",\"regionalDisplayName\":\"(Asia Pacific) Japan West\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"135.5022\",\"latitude\":\"34.6939\",\"physicalLocation\":\"Osaka\",\"pairedRegion\":[{\"name\":\"japaneast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiacentral\",\"name\":\"jioindiacentral\",\"displayName\":\"Jio - India Central\",\"regionalDisplayName\":\"(Asia Pacific) Jio India Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"79.08886\",\"latitude\":\"21.146633\",\"physicalLocation\":\"Nagpur\",\"pairedRegion\":[{\"name\":\"jioindiawest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiawest\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth\",\"name\":\"koreasouth\",\"displayName\":\"Korea - South\",\"regionalDisplayName\":\"(Asia Pacific) Korea South\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"129.0756\",\"latitude\":\"35.1796\",\"physicalLocation\":\"Busan\",\"pairedRegion\":[{\"name\":\"koreacentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia\",\"name\":\"southindia\",\"displayName\":\"South - India\",\"regionalDisplayName\":\"(Asia Pacific) South India\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"80.1636\",\"latitude\":\"12.9822\",\"physicalLocation\":\"Chennai\",\"pairedRegion\":[{\"name\":\"centralindia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westindia\",\"name\":\"westindia\",\"displayName\":\"West - India\",\"regionalDisplayName\":\"(Asia Pacific) West India\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia - Pacific\",\"longitude\":\"72.868\",\"latitude\":\"19.088\",\"physicalLocation\":\"Mumbai\",\"pairedRegion\":[{\"name\":\"southindia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast\",\"name\":\"canadaeast\",\"displayName\":\"Canada - East\",\"regionalDisplayName\":\"(Canada) Canada East\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Canada\",\"longitude\":\"-71.217\",\"latitude\":\"46.817\",\"physicalLocation\":\"Quebec\",\"pairedRegion\":[{\"name\":\"canadacentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth\",\"name\":\"francesouth\",\"displayName\":\"France - South\",\"regionalDisplayName\":\"(Europe) France South\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"2.1972\",\"latitude\":\"43.8345\",\"physicalLocation\":\"Marseille\",\"pairedRegion\":[{\"name\":\"francecentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth\",\"name\":\"germanynorth\",\"displayName\":\"Germany - North\",\"regionalDisplayName\":\"(Europe) Germany North\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"8.806422\",\"latitude\":\"53.073635\",\"physicalLocation\":\"Berlin\",\"pairedRegion\":[{\"name\":\"germanywestcentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest\",\"name\":\"norwaywest\",\"displayName\":\"Norway - West\",\"regionalDisplayName\":\"(Europe) Norway West\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"5.733107\",\"latitude\":\"58.969975\",\"physicalLocation\":\"Norway\",\"pairedRegion\":[{\"name\":\"norwayeast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedensouth\",\"name\":\"swedensouth\",\"displayName\":\"Sweden - South\",\"regionalDisplayName\":\"(Europe) Sweden South\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"13.0007\",\"latitude\":\"55.6059\",\"physicalLocation\":\"Malmo\",\"pairedRegion\":[{\"name\":\"swedencentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedencentral\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest\",\"name\":\"switzerlandwest\",\"displayName\":\"Switzerland - West\",\"regionalDisplayName\":\"(Europe) Switzerland West\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"6.143158\",\"latitude\":\"46.204391\",\"physicalLocation\":\"Geneva\",\"pairedRegion\":[{\"name\":\"switzerlandnorth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest\",\"name\":\"ukwest\",\"displayName\":\"UK - West\",\"regionalDisplayName\":\"(Europe) UK West\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"-3.084\",\"latitude\":\"53.427\",\"physicalLocation\":\"Cardiff\",\"pairedRegion\":[{\"name\":\"uksouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral\",\"name\":\"uaecentral\",\"displayName\":\"UAE - Central\",\"regionalDisplayName\":\"(Middle East) UAE Central\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"Middle - East\",\"longitude\":\"54.366669\",\"latitude\":\"24.466667\",\"physicalLocation\":\"Abu - Dhabi\",\"pairedRegion\":[{\"name\":\"uaenorth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsoutheast\",\"name\":\"brazilsoutheast\",\"displayName\":\"Brazil - Southeast\",\"regionalDisplayName\":\"(South America) Brazil Southeast\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"South - America\",\"longitude\":\"-43.2075\",\"latitude\":\"-22.90278\",\"physicalLocation\":\"Rio\",\"pairedRegion\":[{\"name\":\"brazilsouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth\"}]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusslv\",\"name\":\"eastusslv\",\"displayName\":\"East - US SLV\",\"regionalDisplayName\":\"(South America) East US SLV\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"South - America\",\"longitude\":\"-43.2075\",\"latitude\":\"-22.90278\",\"physicalLocation\":\"Silverstone\",\"pairedRegion\":[{\"name\":\"eastusslv\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusslv\"}]}}]}" + string: "{\"value\":[{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus\"\ + ,\"name\":\"eastus\",\"displayName\":\"East US\",\"regionalDisplayName\":\"\ + (US) East US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-79.8164\",\"latitude\"\ + :\"37.3719\",\"physicalLocation\":\"Virginia\",\"pairedRegion\":[{\"name\"\ + :\"westus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2\"\ + ,\"name\":\"eastus2\",\"displayName\":\"East US 2\",\"regionalDisplayName\"\ + :\"(US) East US 2\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-78.3889\",\"latitude\"\ + :\"36.6681\",\"physicalLocation\":\"Virginia\",\"pairedRegion\":[{\"name\"\ + :\"centralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus\"\ + ,\"name\":\"southcentralus\",\"displayName\":\"South Central US\",\"regionalDisplayName\"\ + :\"(US) South Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-98.5\",\"latitude\"\ + :\"29.4167\",\"physicalLocation\":\"Texas\",\"pairedRegion\":[{\"name\":\"\ + northcentralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2\"\ + ,\"name\":\"westus2\",\"displayName\":\"West US 2\",\"regionalDisplayName\"\ + :\"(US) West US 2\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-119.852\",\"latitude\"\ + :\"47.233\",\"physicalLocation\":\"Washington\",\"pairedRegion\":[{\"name\"\ + :\"westcentralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus3\"\ + ,\"name\":\"westus3\",\"displayName\":\"West US 3\",\"regionalDisplayName\"\ + :\"(US) West US 3\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-112.074036\",\"\ + latitude\":\"33.448376\",\"physicalLocation\":\"Phoenix\",\"pairedRegion\"\ + :[{\"name\":\"eastus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast\"\ + ,\"name\":\"australiaeast\",\"displayName\":\"Australia East\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Australia East\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia Pacific\",\"\ + longitude\":\"151.2094\",\"latitude\":\"-33.86\",\"physicalLocation\":\"New\ + \ South Wales\",\"pairedRegion\":[{\"name\":\"australiasoutheast\",\"id\"\ + :\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia\"\ + ,\"name\":\"southeastasia\",\"displayName\":\"Southeast Asia\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Southeast Asia\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia Pacific\",\"\ + longitude\":\"103.833\",\"latitude\":\"1.283\",\"physicalLocation\":\"Singapore\"\ + ,\"pairedRegion\":[{\"name\":\"eastasia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope\"\ + ,\"name\":\"northeurope\",\"displayName\":\"North Europe\",\"regionalDisplayName\"\ + :\"(Europe) North Europe\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"-6.2597\",\"\ + latitude\":\"53.3478\",\"physicalLocation\":\"Ireland\",\"pairedRegion\":[{\"\ + name\":\"westeurope\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedencentral\"\ + ,\"name\":\"swedencentral\",\"displayName\":\"Sweden Central\",\"regionalDisplayName\"\ + :\"(Europe) Sweden Central\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\"\ + :\"17.14127\",\"latitude\":\"60.67488\",\"physicalLocation\":\"G\xE4vle\"\ + ,\"pairedRegion\":[{\"name\":\"swedensouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedensouth\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth\"\ + ,\"name\":\"uksouth\",\"displayName\":\"UK South\",\"regionalDisplayName\"\ + :\"(Europe) UK South\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"-0.799\",\"\ + latitude\":\"50.941\",\"physicalLocation\":\"London\",\"pairedRegion\":[{\"\ + name\":\"ukwest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope\"\ + ,\"name\":\"westeurope\",\"displayName\":\"West Europe\",\"regionalDisplayName\"\ + :\"(Europe) West Europe\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"4.9\",\"latitude\"\ + :\"52.3667\",\"physicalLocation\":\"Netherlands\",\"pairedRegion\":[{\"name\"\ + :\"northeurope\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus\"\ + ,\"name\":\"centralus\",\"displayName\":\"Central US\",\"regionalDisplayName\"\ + :\"(US) Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-93.6208\",\"latitude\"\ + :\"41.5908\",\"physicalLocation\":\"Iowa\",\"pairedRegion\":[{\"name\":\"\ + eastus2\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth\"\ + ,\"name\":\"southafricanorth\",\"displayName\":\"South Africa North\",\"regionalDisplayName\"\ + :\"(Africa) South Africa North\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Africa\",\"longitude\"\ + :\"28.218370\",\"latitude\":\"-25.731340\",\"physicalLocation\":\"Johannesburg\"\ + ,\"pairedRegion\":[{\"name\":\"southafricawest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia\"\ + ,\"name\":\"centralindia\",\"displayName\":\"Central India\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Central India\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia Pacific\",\"\ + longitude\":\"73.9197\",\"latitude\":\"18.5822\",\"physicalLocation\":\"Pune\"\ + ,\"pairedRegion\":[{\"name\":\"southindia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia\"\ + ,\"name\":\"eastasia\",\"displayName\":\"East Asia\",\"regionalDisplayName\"\ + :\"(Asia Pacific) East Asia\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"114.188\",\"latitude\":\"22.267\",\"physicalLocation\":\"Hong Kong\",\"\ + pairedRegion\":[{\"name\":\"southeastasia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast\"\ + ,\"name\":\"japaneast\",\"displayName\":\"Japan East\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Japan East\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"139.77\",\"latitude\":\"35.68\",\"physicalLocation\":\"Tokyo, Saitama\"\ + ,\"pairedRegion\":[{\"name\":\"japanwest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral\"\ + ,\"name\":\"koreacentral\",\"displayName\":\"Korea Central\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Korea Central\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Asia Pacific\",\"\ + longitude\":\"126.9780\",\"latitude\":\"37.5665\",\"physicalLocation\":\"\ + Seoul\",\"pairedRegion\":[{\"name\":\"koreasouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral\"\ + ,\"name\":\"canadacentral\",\"displayName\":\"Canada Central\",\"regionalDisplayName\"\ + :\"(Canada) Canada Central\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Recommended\",\"geographyGroup\":\"Canada\",\"longitude\"\ + :\"-79.383\",\"latitude\":\"43.653\",\"physicalLocation\":\"Toronto\",\"pairedRegion\"\ + :[{\"name\":\"canadaeast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral\"\ + ,\"name\":\"francecentral\",\"displayName\":\"France Central\",\"regionalDisplayName\"\ + :\"(Europe) France Central\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\"\ + :\"2.3730\",\"latitude\":\"46.3772\",\"physicalLocation\":\"Paris\",\"pairedRegion\"\ + :[{\"name\":\"francesouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral\"\ + ,\"name\":\"germanywestcentral\",\"displayName\":\"Germany West Central\"\ + ,\"regionalDisplayName\":\"(Europe) Germany West Central\",\"metadata\":{\"\ + regionType\":\"Physical\",\"regionCategory\":\"Recommended\",\"geographyGroup\"\ + :\"Europe\",\"longitude\":\"8.682127\",\"latitude\":\"50.110924\",\"physicalLocation\"\ + :\"Frankfurt\",\"pairedRegion\":[{\"name\":\"germanynorth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast\"\ + ,\"name\":\"norwayeast\",\"displayName\":\"Norway East\",\"regionalDisplayName\"\ + :\"(Europe) Norway East\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\":\"10.752245\"\ + ,\"latitude\":\"59.913868\",\"physicalLocation\":\"Norway\",\"pairedRegion\"\ + :[{\"name\":\"norwaywest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth\"\ + ,\"name\":\"switzerlandnorth\",\"displayName\":\"Switzerland North\",\"regionalDisplayName\"\ + :\"(Europe) Switzerland North\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Europe\",\"longitude\"\ + :\"8.564572\",\"latitude\":\"47.451542\",\"physicalLocation\":\"Zurich\",\"\ + pairedRegion\":[{\"name\":\"switzerlandwest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth\"\ + ,\"name\":\"uaenorth\",\"displayName\":\"UAE North\",\"regionalDisplayName\"\ + :\"(Middle East) UAE North\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Recommended\",\"geographyGroup\":\"Middle East\",\"longitude\"\ + :\"55.316666\",\"latitude\":\"25.266666\",\"physicalLocation\":\"Dubai\",\"\ + pairedRegion\":[{\"name\":\"uaecentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth\"\ + ,\"name\":\"brazilsouth\",\"displayName\":\"Brazil South\",\"regionalDisplayName\"\ + :\"(South America) Brazil South\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"South America\",\"\ + longitude\":\"-46.633\",\"latitude\":\"-23.55\",\"physicalLocation\":\"Sao\ + \ Paulo State\",\"pairedRegion\":[{\"name\":\"southcentralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap\"\ + ,\"name\":\"eastus2euap\",\"displayName\":\"East US 2 EUAP\",\"regionalDisplayName\"\ + :\"(US) East US 2 EUAP\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Recommended\",\"geographyGroup\":\"US\",\"longitude\":\"-78.3889\",\"latitude\"\ + :\"36.6681\",\"pairedRegion\":[{\"name\":\"centraluseuap\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/qatarcentral\"\ + ,\"name\":\"qatarcentral\",\"displayName\":\"Qatar Central\",\"regionalDisplayName\"\ + :\"(Middle East) Qatar Central\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Recommended\",\"geographyGroup\":\"Middle East\",\"\ + longitude\":\"51.439327\",\"latitude\":\"25.551462\",\"physicalLocation\"\ + :\"Doha\",\"pairedRegion\":[{\"name\":\"westeurope\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralusstage\"\ + ,\"name\":\"centralusstage\",\"displayName\":\"Central US (Stage)\",\"regionalDisplayName\"\ + :\"(US) Central US (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusstage\"\ + ,\"name\":\"eastusstage\",\"displayName\":\"East US (Stage)\",\"regionalDisplayName\"\ + :\"(US) East US (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2stage\"\ + ,\"name\":\"eastus2stage\",\"displayName\":\"East US 2 (Stage)\",\"regionalDisplayName\"\ + :\"(US) East US 2 (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralusstage\"\ + ,\"name\":\"northcentralusstage\",\"displayName\":\"North Central US (Stage)\"\ + ,\"regionalDisplayName\":\"(US) North Central US (Stage)\",\"metadata\":{\"\ + regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"\ + US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralusstage\"\ + ,\"name\":\"southcentralusstage\",\"displayName\":\"South Central US (Stage)\"\ + ,\"regionalDisplayName\":\"(US) South Central US (Stage)\",\"metadata\":{\"\ + regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"\ + US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westusstage\"\ + ,\"name\":\"westusstage\",\"displayName\":\"West US (Stage)\",\"regionalDisplayName\"\ + :\"(US) West US (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2stage\"\ + ,\"name\":\"westus2stage\",\"displayName\":\"West US 2 (Stage)\",\"regionalDisplayName\"\ + :\"(US) West US 2 (Stage)\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asia\"\ + ,\"name\":\"asia\",\"displayName\":\"Asia\",\"regionalDisplayName\":\"Asia\"\ + ,\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"\ + id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asiapacific\"\ + ,\"name\":\"asiapacific\",\"displayName\":\"Asia Pacific\",\"regionalDisplayName\"\ + :\"Asia Pacific\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australia\"\ + ,\"name\":\"australia\",\"displayName\":\"Australia\",\"regionalDisplayName\"\ + :\"Australia\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazil\"\ + ,\"name\":\"brazil\",\"displayName\":\"Brazil\",\"regionalDisplayName\":\"\ + Brazil\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"\ + }},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canada\"\ + ,\"name\":\"canada\",\"displayName\":\"Canada\",\"regionalDisplayName\":\"\ + Canada\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"\ + }},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/europe\"\ + ,\"name\":\"europe\",\"displayName\":\"Europe\",\"regionalDisplayName\":\"\ + Europe\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"\ + }},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/france\"\ + ,\"name\":\"france\",\"displayName\":\"France\",\"regionalDisplayName\":\"\ + France\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"\ + }},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germany\"\ + ,\"name\":\"germany\",\"displayName\":\"Germany\",\"regionalDisplayName\"\ + :\"Germany\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"\ + Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/global\"\ + ,\"name\":\"global\",\"displayName\":\"Global\",\"regionalDisplayName\":\"\ + Global\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"\ + }},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/india\"\ + ,\"name\":\"india\",\"displayName\":\"India\",\"regionalDisplayName\":\"India\"\ + ,\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"\ + id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japan\"\ + ,\"name\":\"japan\",\"displayName\":\"Japan\",\"regionalDisplayName\":\"Japan\"\ + ,\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"\ + id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/korea\"\ + ,\"name\":\"korea\",\"displayName\":\"Korea\",\"regionalDisplayName\":\"Korea\"\ + ,\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"}},{\"\ + id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norway\"\ + ,\"name\":\"norway\",\"displayName\":\"Norway\",\"regionalDisplayName\":\"\ + Norway\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\":\"Other\"\ + }},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/singapore\"\ + ,\"name\":\"singapore\",\"displayName\":\"Singapore\",\"regionalDisplayName\"\ + :\"Singapore\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafrica\"\ + ,\"name\":\"southafrica\",\"displayName\":\"South Africa\",\"regionalDisplayName\"\ + :\"South Africa\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerland\"\ + ,\"name\":\"switzerland\",\"displayName\":\"Switzerland\",\"regionalDisplayName\"\ + :\"Switzerland\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uae\"\ + ,\"name\":\"uae\",\"displayName\":\"United Arab Emirates\",\"regionalDisplayName\"\ + :\"United Arab Emirates\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uk\"\ + ,\"name\":\"uk\",\"displayName\":\"United Kingdom\",\"regionalDisplayName\"\ + :\"United Kingdom\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/unitedstates\"\ + ,\"name\":\"unitedstates\",\"displayName\":\"United States\",\"regionalDisplayName\"\ + :\"United States\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/unitedstateseuap\"\ + ,\"name\":\"unitedstateseuap\",\"displayName\":\"United States EUAP\",\"regionalDisplayName\"\ + :\"United States EUAP\",\"metadata\":{\"regionType\":\"Logical\",\"regionCategory\"\ + :\"Other\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasiastage\"\ + ,\"name\":\"eastasiastage\",\"displayName\":\"East Asia (Stage)\",\"regionalDisplayName\"\ + :\"(Asia Pacific) East Asia (Stage)\",\"metadata\":{\"regionType\":\"Logical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\"}},{\"id\"\ + :\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasiastage\"\ + ,\"name\":\"southeastasiastage\",\"displayName\":\"Southeast Asia (Stage)\"\ + ,\"regionalDisplayName\":\"(Asia Pacific) Southeast Asia (Stage)\",\"metadata\"\ + :{\"regionType\":\"Logical\",\"regionCategory\":\"Other\",\"geographyGroup\"\ + :\"Asia Pacific\"}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusstg\"\ + ,\"name\":\"eastusstg\",\"displayName\":\"East US STG\",\"regionalDisplayName\"\ + :\"(US) East US STG\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-79.8164\",\"latitude\"\ + :\"37.3719\",\"physicalLocation\":\"Virginia\",\"pairedRegion\":[{\"name\"\ + :\"southcentralusstg\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralusstg\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralusstg\"\ + ,\"name\":\"southcentralusstg\",\"displayName\":\"South Central US STG\",\"\ + regionalDisplayName\":\"(US) South Central US STG\",\"metadata\":{\"regionType\"\ + :\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\":\"US\",\"longitude\"\ + :\"-98.5\",\"latitude\":\"29.4167\",\"physicalLocation\":\"Texas\",\"pairedRegion\"\ + :[{\"name\":\"eastusstg\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusstg\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus\"\ + ,\"name\":\"northcentralus\",\"displayName\":\"North Central US\",\"regionalDisplayName\"\ + :\"(US) North Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-87.6278\",\"latitude\"\ + :\"41.8819\",\"physicalLocation\":\"Illinois\",\"pairedRegion\":[{\"name\"\ + :\"southcentralus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus\"\ + ,\"name\":\"westus\",\"displayName\":\"West US\",\"regionalDisplayName\":\"\ + (US) West US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-122.417\",\"latitude\"\ + :\"37.783\",\"physicalLocation\":\"California\",\"pairedRegion\":[{\"name\"\ + :\"eastus\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiawest\"\ + ,\"name\":\"jioindiawest\",\"displayName\":\"Jio India West\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Jio India West\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"70.05773\",\"latitude\":\"22.470701\",\"physicalLocation\":\"Jamnagar\"\ + ,\"pairedRegion\":[{\"name\":\"jioindiacentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiacentral\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/taiwannorth\"\ + ,\"name\":\"taiwannorth\",\"displayName\":\"Taiwan North\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Taiwan North\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"121.3662962\",\"latitude\":\"25.0174719\",\"physicalLocation\":\"Taiwan\ + \ North\",\"pairedRegion\":[{\"name\":\"taiwannw\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/taiwannw\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap\"\ + ,\"name\":\"centraluseuap\",\"displayName\":\"Central US EUAP\",\"regionalDisplayName\"\ + :\"(US) Central US EUAP\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-93.6208\",\"latitude\"\ + :\"41.5908\",\"pairedRegion\":[{\"name\":\"eastus2euap\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus\"\ + ,\"name\":\"westcentralus\",\"displayName\":\"West Central US\",\"regionalDisplayName\"\ + :\"(US) West Central US\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"US\",\"longitude\":\"-110.234\",\"latitude\"\ + :\"40.890\",\"physicalLocation\":\"Wyoming\",\"pairedRegion\":[{\"name\":\"\ + westus2\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest\"\ + ,\"name\":\"southafricawest\",\"displayName\":\"South Africa West\",\"regionalDisplayName\"\ + :\"(Africa) South Africa West\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Africa\",\"longitude\"\ + :\"18.843266\",\"latitude\":\"-34.075691\",\"physicalLocation\":\"Cape Town\"\ + ,\"pairedRegion\":[{\"name\":\"southafricanorth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral\"\ + ,\"name\":\"australiacentral\",\"displayName\":\"Australia Central\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Australia Central\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"149.1244\",\"latitude\":\"-35.3075\",\"physicalLocation\":\"Canberra\"\ + ,\"pairedRegion\":[{\"name\":\"australiacentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2\"\ + ,\"name\":\"australiacentral2\",\"displayName\":\"Australia Central 2\",\"\ + regionalDisplayName\":\"(Asia Pacific) Australia Central 2\",\"metadata\"\ + :{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\"\ + :\"Asia Pacific\",\"longitude\":\"149.1244\",\"latitude\":\"-35.3075\",\"\ + physicalLocation\":\"Canberra\",\"pairedRegion\":[{\"name\":\"australiacentral2\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast\"\ + ,\"name\":\"australiasoutheast\",\"displayName\":\"Australia Southeast\",\"\ + regionalDisplayName\":\"(Asia Pacific) Australia Southeast\",\"metadata\"\ + :{\"regionType\":\"Physical\",\"regionCategory\":\"Other\",\"geographyGroup\"\ + :\"Asia Pacific\",\"longitude\":\"144.9631\",\"latitude\":\"-37.8136\",\"\ + physicalLocation\":\"Victoria\",\"pairedRegion\":[{\"name\":\"australiaeast\"\ + ,\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest\"\ + ,\"name\":\"japanwest\",\"displayName\":\"Japan West\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Japan West\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"135.5022\",\"latitude\":\"34.6939\",\"physicalLocation\":\"Osaka\",\"pairedRegion\"\ + :[{\"name\":\"japaneast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiacentral\"\ + ,\"name\":\"jioindiacentral\",\"displayName\":\"Jio India Central\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Jio India Central\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"79.08886\",\"latitude\":\"21.146633\",\"physicalLocation\":\"Nagpur\",\"\ + pairedRegion\":[{\"name\":\"jioindiawest\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiawest\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth\"\ + ,\"name\":\"koreasouth\",\"displayName\":\"Korea South\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Korea South\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"129.0756\",\"latitude\":\"35.1796\",\"physicalLocation\":\"Busan\",\"pairedRegion\"\ + :[{\"name\":\"koreacentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia\"\ + ,\"name\":\"southindia\",\"displayName\":\"South India\",\"regionalDisplayName\"\ + :\"(Asia Pacific) South India\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"80.1636\",\"latitude\":\"12.9822\",\"physicalLocation\":\"Chennai\",\"\ + pairedRegion\":[{\"name\":\"centralindia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/taiwannorthwest\"\ + ,\"name\":\"taiwannorthwest\",\"displayName\":\"Taiwan Northwest\",\"regionalDisplayName\"\ + :\"(Asia Pacific) Taiwan Northwest\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"120.921008\",\"latitude\":\"24.7848456\",\"physicalLocation\":\"Taiwan\ + \ Northwest\",\"pairedRegion\":[{\"name\":\"taiwann\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/taiwann\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westindia\"\ + ,\"name\":\"westindia\",\"displayName\":\"West India\",\"regionalDisplayName\"\ + :\"(Asia Pacific) West India\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Other\",\"geographyGroup\":\"Asia Pacific\",\"longitude\"\ + :\"72.868\",\"latitude\":\"19.088\",\"physicalLocation\":\"Mumbai\",\"pairedRegion\"\ + :[{\"name\":\"southindia\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast\"\ + ,\"name\":\"canadaeast\",\"displayName\":\"Canada East\",\"regionalDisplayName\"\ + :\"(Canada) Canada East\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"Canada\",\"longitude\":\"-71.217\",\"latitude\"\ + :\"46.817\",\"physicalLocation\":\"Quebec\",\"pairedRegion\":[{\"name\":\"\ + canadacentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth\"\ + ,\"name\":\"francesouth\",\"displayName\":\"France South\",\"regionalDisplayName\"\ + :\"(Europe) France South\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"2.1972\",\"latitude\"\ + :\"43.8345\",\"physicalLocation\":\"Marseille\",\"pairedRegion\":[{\"name\"\ + :\"francecentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth\"\ + ,\"name\":\"germanynorth\",\"displayName\":\"Germany North\",\"regionalDisplayName\"\ + :\"(Europe) Germany North\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"8.806422\",\"latitude\"\ + :\"53.073635\",\"physicalLocation\":\"Berlin\",\"pairedRegion\":[{\"name\"\ + :\"germanywestcentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest\"\ + ,\"name\":\"norwaywest\",\"displayName\":\"Norway West\",\"regionalDisplayName\"\ + :\"(Europe) Norway West\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"5.733107\",\"latitude\"\ + :\"58.969975\",\"physicalLocation\":\"Norway\",\"pairedRegion\":[{\"name\"\ + :\"norwayeast\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedensouth\"\ + ,\"name\":\"swedensouth\",\"displayName\":\"Sweden South\",\"regionalDisplayName\"\ + :\"(Europe) Sweden South\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"13.0007\",\"latitude\"\ + :\"55.6059\",\"physicalLocation\":\"Malmo\",\"pairedRegion\":[{\"name\":\"\ + swedencentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedencentral\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest\"\ + ,\"name\":\"switzerlandwest\",\"displayName\":\"Switzerland West\",\"regionalDisplayName\"\ + :\"(Europe) Switzerland West\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"\ + 6.143158\",\"latitude\":\"46.204391\",\"physicalLocation\":\"Geneva\",\"pairedRegion\"\ + :[{\"name\":\"switzerlandnorth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest\"\ + ,\"name\":\"ukwest\",\"displayName\":\"UK West\",\"regionalDisplayName\":\"\ + (Europe) UK West\",\"metadata\":{\"regionType\":\"Physical\",\"regionCategory\"\ + :\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"-3.084\",\"latitude\"\ + :\"53.427\",\"physicalLocation\":\"Cardiff\",\"pairedRegion\":[{\"name\":\"\ + uksouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral\"\ + ,\"name\":\"uaecentral\",\"displayName\":\"UAE Central\",\"regionalDisplayName\"\ + :\"(Middle East) UAE Central\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Other\",\"geographyGroup\":\"Middle East\",\"longitude\"\ + :\"54.366669\",\"latitude\":\"24.466667\",\"physicalLocation\":\"Abu Dhabi\"\ + ,\"pairedRegion\":[{\"name\":\"uaenorth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsoutheast\"\ + ,\"name\":\"brazilsoutheast\",\"displayName\":\"Brazil Southeast\",\"regionalDisplayName\"\ + :\"(South America) Brazil Southeast\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"South America\",\"longitude\"\ + :\"-43.2075\",\"latitude\":\"-22.90278\",\"physicalLocation\":\"Rio\",\"pairedRegion\"\ + :[{\"name\":\"brazilsouth\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusslv\"\ + ,\"name\":\"eastusslv\",\"displayName\":\"East US SLV\",\"regionalDisplayName\"\ + :\"(South America) East US SLV\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"South America\",\"longitude\"\ + :\"-43.2075\",\"latitude\":\"-22.90278\",\"physicalLocation\":\"Silverstone\"\ + ,\"pairedRegion\":[{\"name\":\"eastusslv\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusslv\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/polandcentral\"\ + ,\"name\":\"polandcentral\",\"displayName\":\"Poland Central\",\"regionalDisplayName\"\ + :\"(Europe) Poland Central\",\"metadata\":{\"regionType\":\"Physical\",\"\ + regionCategory\":\"Other\",\"geographyGroup\":\"Europe\",\"longitude\":\"\ + 14.6512702\",\"latitude\":\"51.8685079\",\"physicalLocation\":\"Warsaw\",\"\ + pairedRegion\":[{\"name\":\"swedencentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedencentral\"\ + }]}},{\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/israelcentral\"\ + ,\"name\":\"israelcentral\",\"displayName\":\"Israel Central\",\"regionalDisplayName\"\ + :\"(Middle East) Israel Central\",\"metadata\":{\"regionType\":\"Physical\"\ + ,\"regionCategory\":\"Other\",\"geographyGroup\":\"Middle East\",\"longitude\"\ + :\"33.4506633\",\"latitude\":\"31.2655698\",\"physicalLocation\":\"Israel\"\ + ,\"pairedRegion\":[{\"name\":\"swedencentral\",\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/locations/swedencentral\"\ + }]}}]}" headers: cache-control: - no-cache content-length: - - '27936' + - '33272' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:56:38 GMT + - Tue, 23 Aug 2022 09:32:32 GMT expires: - '-1' pragma: @@ -141,49 +480,41 @@ interactions: Connection: - keep-alive Content-Length: - - '101' + - '96' Content-Type: - application/json ParameterSetName: - --resource-group --name --location User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002?api-version=2015-10-31 response: body: - string: '{"name":"test-account-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{},"etag":null,"properties":{"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://79aa051f-5c4b-4b56-a007-2852dc2f4465.agentsvc.wus2.azure-automation.net/accounts/79aa051f-5c4b-4b56-a007-2852dc2f4465","creationTime":"2021-07-30T06:56:45.1733333+00:00","lastModifiedBy":null,"lastModifiedTime":"2021-07-30T06:56:45.1733333+00:00"}}' + string: '{"name":"test-account-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{},"etag":null,"properties":{"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://c74dad8b-eee8-4565-889f-abff737b6acc.agentsvc.wus2.azure-automation.net/accounts/c74dad8b-eee8-4565-889f-abff737b6acc","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}}},"creationTime":"2022-08-23T09:32:40.5766667+00:00","lastModifiedBy":null,"lastModifiedTime":"2022-08-23T09:32:40.5766667+00:00"}}' headers: cache-control: - no-cache content-length: - - '707' + - '768' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:56:46 GMT + - Tue, 23 Aug 2022 09:32:42 GMT expires: - '-1' location: - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002?api-version=2015-10-31 - ocp-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik?api-version=2015-10-31 pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-ms-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik?api-version=2015-10-31 x-ms-ratelimit-remaining-subscription-writes: - '1199' - x-powered-by: - - ASP.NET status: code: 201 message: Created @@ -201,41 +532,37 @@ interactions: ParameterSetName: - --resource-group --name --tags User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002?api-version=2015-10-31 response: body: - string: '{"name":"test-account-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{},"etag":null,"properties":{"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://79aa051f-5c4b-4b56-a007-2852dc2f4465.agentsvc.wus2.azure-automation.net/accounts/79aa051f-5c4b-4b56-a007-2852dc2f4465","creationTime":"2021-07-30T06:56:45.1733333+00:00","lastModifiedBy":null,"lastModifiedTime":"2021-07-30T06:56:45.1733333+00:00"}}' + string: '{"name":"test-account-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{},"etag":null,"properties":{"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://c74dad8b-eee8-4565-889f-abff737b6acc.agentsvc.wus2.azure-automation.net/accounts/c74dad8b-eee8-4565-889f-abff737b6acc","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}}},"creationTime":"2022-08-23T09:32:40.5766667+00:00","lastModifiedBy":null,"lastModifiedTime":"2022-08-23T09:32:40.5766667+00:00"}}' headers: cache-control: - no-cache content-length: - - '707' + - '768' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:56:49 GMT + - Tue, 23 Aug 2022 09:32:45 GMT expires: - '-1' ocp-automation-accountid: - - 79aa051f-5c4b-4b56-a007-2852dc2f4465 + - c74dad8b-eee8-4565-889f-abff737b6acc pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: - chunked vary: - Accept-Encoding - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-powered-by: - - ASP.NET status: code: 200 message: OK @@ -252,47 +579,43 @@ interactions: Connection: - keep-alive Content-Length: - - '98' + - '93' Content-Type: - application/json ParameterSetName: - --resource-group --name --tags User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: PATCH uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002?api-version=2015-10-31 response: body: - string: '{"name":"test-account-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{"A":"a"},"etag":null,"properties":{"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://79aa051f-5c4b-4b56-a007-2852dc2f4465.agentsvc.wus2.azure-automation.net/accounts/79aa051f-5c4b-4b56-a007-2852dc2f4465","creationTime":"2021-07-30T06:56:45.1733333+00:00","lastModifiedBy":null,"lastModifiedTime":"2021-07-30T06:56:51.85+00:00"}}' + string: '{"name":"test-account-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{"A":"a"},"etag":null,"properties":{"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://c74dad8b-eee8-4565-889f-abff737b6acc.agentsvc.wus2.azure-automation.net/accounts/c74dad8b-eee8-4565-889f-abff737b6acc","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}}},"creationTime":"2022-08-23T09:32:40.5766667+00:00","lastModifiedBy":null,"lastModifiedTime":"2022-08-23T09:32:48.01+00:00"}}' headers: cache-control: - no-cache content-length: - - '709' + - '770' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:56:53 GMT + - Tue, 23 Aug 2022 09:32:51 GMT expires: - '-1' pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: - chunked vary: - Accept-Encoding - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - '1199' - x-powered-by: - - ASP.NET status: code: 200 message: OK @@ -310,41 +633,37 @@ interactions: ParameterSetName: - --resource-group --name User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002?api-version=2015-10-31 response: body: - string: '{"name":"test-account-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{"A":"a"},"etag":null,"properties":{"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://79aa051f-5c4b-4b56-a007-2852dc2f4465.agentsvc.wus2.azure-automation.net/accounts/79aa051f-5c4b-4b56-a007-2852dc2f4465","creationTime":"2021-07-30T06:56:45.1733333+00:00","lastModifiedBy":null,"lastModifiedTime":"2021-07-30T06:56:51.85+00:00"}}' + string: '{"name":"test-account-000002","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","type":"Microsoft.Automation/AutomationAccounts","location":"westus2","tags":{"A":"a"},"etag":null,"properties":{"sku":{"name":"Basic","family":null,"capacity":null},"state":"Ok","RegistrationUrl":"https://c74dad8b-eee8-4565-889f-abff737b6acc.agentsvc.wus2.azure-automation.net/accounts/c74dad8b-eee8-4565-889f-abff737b6acc","RuntimeConfiguration":{"powershell":{"builtinModules":{"Az":"8.0.0"}},"powershell7":{"builtinModules":{"Az":"8.0.0"}}},"creationTime":"2022-08-23T09:32:40.5766667+00:00","lastModifiedBy":null,"lastModifiedTime":"2022-08-23T09:32:48.01+00:00"}}' headers: cache-control: - no-cache content-length: - - '709' + - '770' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:56:56 GMT + - Tue, 23 Aug 2022 09:32:53 GMT expires: - '-1' ocp-automation-accountid: - - 79aa051f-5c4b-4b56-a007-2852dc2f4465 + - c74dad8b-eee8-4565-889f-abff737b6acc pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: - chunked vary: - Accept-Encoding - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-powered-by: - - ASP.NET status: code: 200 message: OK @@ -362,39 +681,35 @@ interactions: ParameterSetName: - --resource-group User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts?api-version=2015-10-31 response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","location":"westus2","name":"test-account-000002","type":"Microsoft.Automation/AutomationAccounts","tags":{"A":"a"},"properties":{"creationTime":"2021-07-30T06:56:45.1733333+00:00","lastModifiedTime":"2021-07-30T06:56:51.85+00:00","state":"Ok"}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002","location":"westus2","name":"test-account-000002","type":"Microsoft.Automation/AutomationAccounts","tags":{"A":"a"},"properties":{"creationTime":"2022-08-23T09:32:40.5766667+00:00","lastModifiedTime":"2022-08-23T09:32:48.01+00:00","state":"Ok"}}]}' headers: cache-control: - no-cache content-length: - - '488' + - '429' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:56:59 GMT + - Tue, 23 Aug 2022 09:32:53 GMT expires: - '-1' pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: - chunked vary: - Accept-Encoding - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-powered-by: - - ASP.NET status: code: 200 message: OK @@ -412,21 +727,21 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name --type User-Agent: - - AZURECLI/2.26.1 azsdk-python-azure-mgmt-resource/18.0.0 Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-azure-mgmt-resource/21.1.0b1 Python/3.10.5 (Windows-10-10.0.22000-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_automation_000001?api-version=2021-04-01 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001","name":"cli_test_automation_000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2021-07-30T06:56:30Z","StorageType":"Standard_LRS","type":"test"},"properties":{"provisioningState":"Succeeded"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001","name":"cli_test_automation_000001","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"product":"azurecli","cause":"automation","date":"2022-08-23T09:32:25Z"},"properties":{"provisioningState":"Succeeded"}}' headers: cache-control: - no-cache content-length: - - '472' + - '331' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:57:00 GMT + - Tue, 23 Aug 2022 09:32:54 GMT expires: - '-1' pragma: @@ -453,51 +768,43 @@ interactions: Connection: - keep-alive Content-Length: - - '117' + - '112' Content-Type: - application/json ParameterSetName: - --resource-group --automation-account-name --name --type User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003?api-version=2018-06-30 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003","name":"test-runbook-000003","type":"Microsoft.Automation/AutomationAccounts/Runbooks","location":"westus2","tags":{},"etag":"\"637632250287300000\"","properties":{"description":null,"logVerbose":false,"logProgress":false,"logActivityTrace":0,"runbookType":"PowerShell","parameters":{},"state":"New","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2021-07-30T06:57:08.73+00:00","lastModifiedBy":null,"lastModifiedTime":"2021-07-30T06:57:08.73+00:00"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003","name":"test-runbook-000003","type":"Microsoft.Automation/AutomationAccounts/Runbooks","location":"westus2","tags":{},"etag":"\"637968439787000000\"","properties":{"description":null,"logVerbose":false,"logProgress":false,"logActivityTrace":0,"runbookType":"PowerShell","parameters":{},"state":"New","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2022-08-23T09:32:58.7+00:00","lastModifiedBy":null,"lastModifiedTime":"2022-08-23T09:32:58.7+00:00"}}' headers: cache-control: - no-cache content-length: - - '775' + - '709' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:57:09 GMT + - Tue, 23 Aug 2022 09:32:58 GMT etag: - - '"637632250287300000"' + - '"637968439787000000"' expires: - '-1' location: - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003?api-version=2018-06-30 - ocp-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik/runbooks/test-runbook-x5m2b6qu57r?api-version=2018-06-30 pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-ms-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik/runbooks/test-runbook-x5m2b6qu57r?api-version=2018-06-30 x-ms-ratelimit-remaining-subscription-writes: - - '1199' - x-powered-by: - - ASP.NET + - '1198' status: code: 201 message: Created @@ -521,48 +828,44 @@ interactions: - --resource-group --automation-account-name --name --log-activity-trace --log-verbose --log-progress User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: PATCH uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003?api-version=2018-06-30 response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003","name":"test-runbook-000003","type":"Microsoft.Automation/AutomationAccounts/Runbooks","location":"westus2","tags":{},"etag":"\"637632250325166667\"","properties":{"description":null,"logVerbose":true,"logProgress":true,"logActivityTrace":1,"runbookType":"PowerShell","parameters":{},"state":"New","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2021-07-30T06:57:08.73+00:00","lastModifiedBy":"{scrubbed}","lastModifiedTime":"2021-07-30T06:57:12.5166667+00:00"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003","name":"test-runbook-000003","type":"Microsoft.Automation/AutomationAccounts/Runbooks","location":"westus2","tags":{},"etag":"\"637968439819066667\"","properties":{"description":null,"logVerbose":true,"logProgress":true,"logActivityTrace":1,"runbookType":"PowerShell","parameters":{},"state":"New","jobCount":0,"provisioningState":"Succeeded","serviceManagementTags":null,"outputTypes":[],"creationTime":"2022-08-23T09:32:58.7+00:00","lastModifiedBy":"{scrubbed}","lastModifiedTime":"2022-08-23T09:33:01.9066667+00:00"}}' headers: cache-control: - no-cache content-length: - - '786' + - '721' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:57:11 GMT + - Tue, 23 Aug 2022 09:33:01 GMT etag: - - '"637632250325166667"' + - '"637968439819066667"' expires: - '-1' pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: - chunked vary: - Accept-Encoding - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-writes: - - '1198' - x-powered-by: - - ASP.NET + - '1199' status: code: 200 message: OK - request: - body: '@C:UsersAdministratorAppDataLocalTempPowerShell.ps' + body: '@C:UserskrmanupaAppDataLocalTempPowerShell.ps' headers: Accept: - application/json @@ -573,13 +876,13 @@ interactions: Connection: - keep-alive Content-Length: - - '50' + - '45' Content-Type: - text/powershell ParameterSetName: - --resource-group --automation-account-name --name --content User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/draft/content?api-version=2018-06-30 response: @@ -591,32 +894,24 @@ interactions: content-length: - '0' date: - - Fri, 30 Jul 2021 06:57:14 GMT + - Tue, 23 Aug 2022 09:33:02 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/draft/content/operationResults/11cf3d42-7612-4408-89e0-a9da05ddfb2f?api-version=2018-06-30 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/operationResults/06a910fb-3b0f-48ce-b9a6-28d34cf60429?api-version=2018-06-30 ocp-automation-operationresultid: - - 11cf3d42-7612-4408-89e0-a9da05ddfb2f - - 11cf3d42-7612-4408-89e0-a9da05ddfb2f - ocp-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik/runbooks/test-runbook-x5m2b6qu57r/draft/content/operationResults/11cf3d42-7612-4408-89e0-a9da05ddfb2f?api-version=2018-06-30 + - 06a910fb-3b0f-48ce-b9a6-28d34cf60429 + - 06a910fb-3b0f-48ce-b9a6-28d34cf60429 pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-ms-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik/runbooks/test-runbook-x5m2b6qu57r/draft/content/operationResults/11cf3d42-7612-4408-89e0-a9da05ddfb2f?api-version=2018-06-30 x-ms-ratelimit-remaining-subscription-writes: - '1198' - x-powered-by: - - ASP.NET status: code: 202 message: Accepted @@ -634,9 +929,9 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name --content User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/draft/content/operationResults/11cf3d42-7612-4408-89e0-a9da05ddfb2f?api-version=2018-06-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/operationResults/06a910fb-3b0f-48ce-b9a6-28d34cf60429?api-version=2018-06-30 response: body: string: '' @@ -648,21 +943,17 @@ interactions: content-type: - text/plain; charset=utf-8 date: - - Fri, 30 Jul 2021 06:57:46 GMT + - Tue, 23 Aug 2022 09:33:10 GMT expires: - '-1' pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-powered-by: - - ASP.NET status: code: 200 message: OK @@ -682,7 +973,7 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: POST uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/publish?api-version=2018-06-30 response: @@ -694,32 +985,24 @@ interactions: content-length: - '0' date: - - Fri, 30 Jul 2021 06:57:49 GMT + - Tue, 23 Aug 2022 09:33:12 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/publish/operationResults/3e869ee4-d50f-451f-9862-168d834b2854?api-version=2018-06-30 + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/operationResults/bf0013ce-7c25-4828-acae-5dd35ab4c88e?api-version=2018-06-30 ocp-automation-operationresultid: - - 3e869ee4-d50f-451f-9862-168d834b2854 - - 3e869ee4-d50f-451f-9862-168d834b2854 - ocp-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik/runbooks/test-runbook-x5m2b6qu57r/publish/operationResults/3e869ee4-d50f-451f-9862-168d834b2854?api-version=2018-06-30 + - bf0013ce-7c25-4828-acae-5dd35ab4c88e + - bf0013ce-7c25-4828-acae-5dd35ab4c88e pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-ms-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik/runbooks/test-runbook-x5m2b6qu57r/publish/operationResults/3e869ee4-d50f-451f-9862-168d834b2854?api-version=2018-06-30 x-ms-ratelimit-remaining-subscription-writes: - - '1198' - x-powered-by: - - ASP.NET + - '1199' status: code: 202 message: Accepted @@ -737,9 +1020,9 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/publish/operationResults/3e869ee4-d50f-451f-9862-168d834b2854?api-version=2018-06-30 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/runbooks/test-runbook-000003/operationResults/bf0013ce-7c25-4828-acae-5dd35ab4c88e?api-version=2018-06-30 response: body: string: '' @@ -751,21 +1034,249 @@ interactions: content-type: - text/plain; charset=utf-8 date: - - Fri, 30 Jul 2021 06:58:20 GMT + - Tue, 23 Aug 2022 09:33:18 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"name": "hwg-000004"}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation hrwg create + Connection: + - keep-alive + Content-Length: + - '22' + Content-Type: + - application/json + ParameterSetName: + - --resource-group --automation-account-name --name + User-Agent: + - AZURECLI/2.39.0 (AAZ) azsdk-python-core/1.24.0 Python/3.10.5 (Windows-10-10.0.22000-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hwg-000004?api-version=2022-02-22 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hwg-000004","name":"hwg-000004","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups","properties":{"groupType":"User","credential":{"name":null},"hybridRunbookWorkers":null},"systemData":{"createdAt":"2022-08-23T09:33:20.8330338+00:00","lastModifiedAt":"2022-08-23T09:33:20.8330338+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '509' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 23 Aug 2022 09:33:20 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hwg-000004?api-version=2022-02-22 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1197' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation hrwg show + Connection: + - keep-alive + ParameterSetName: + - --resource-group --automation-account-name --name + User-Agent: + - AZURECLI/2.39.0 (AAZ) azsdk-python-core/1.24.0 Python/3.10.5 (Windows-10-10.0.22000-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hwg-000004?api-version=2022-02-22 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hwg-000004","name":"hwg-000004","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups","properties":{"groupType":"User","credential":{"name":null},"hybridRunbookWorkers":null},"systemData":{"createdAt":"2022-08-23T09:33:20.8330338+00:00","lastModifiedAt":"2022-08-23T09:33:20.8330338+00:00"}}' + headers: + cache-control: + - no-cache + content-length: + - '509' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 23 Aug 2022 09:33:21 GMT expires: - '-1' pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 + transfer-encoding: + - chunked + vary: + - Accept-Encoding x-content-type-options: - nosniff - x-powered-by: - - ASP.NET + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation hrwg list + Connection: + - keep-alive + ParameterSetName: + - --resource-group --automation-account-name + User-Agent: + - AZURECLI/2.39.0 (AAZ) azsdk-python-core/1.24.0 Python/3.10.5 (Windows-10-10.0.22000-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups?api-version=2022-02-22 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hwg-000004","name":"hwg-000004","type":"Microsoft.Automation/AutomationAccounts/HybridRunbookWorkerGroups","properties":{"groupType":"User","credential":{"name":null},"hybridRunbookWorkers":null},"systemData":{"createdAt":"2022-08-23T09:33:20.8330338+00:00","lastModifiedAt":"2022-08-23T09:33:20.8330338+00:00"}}]}' + headers: + cache-control: + - no-cache + content-length: + - '521' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 23 Aug 2022 09:33:23 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - automation hrwg hrw list + Connection: + - keep-alive + ParameterSetName: + - --automation-account-name --hybrid-runbook-worker-group-name -g + User-Agent: + - AZURECLI/2.39.0 (AAZ) azsdk-python-core/1.24.0 Python/3.10.5 (Windows-10-10.0.22000-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hwg-000004/hybridRunbookWorkers?api-version=2021-06-22 + response: + body: + string: '{"value":[]}' + headers: + cache-control: + - no-cache + content-length: + - '12' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 23 Aug 2022 09:33:25 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - automation hrwg delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - --resource-group --automation-account-name --name --yes + User-Agent: + - AZURECLI/2.39.0 (AAZ) azsdk-python-core/1.24.0 Python/3.10.5 (Windows-10-10.0.22000-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/hybridRunbookWorkerGroups/hwg-000004?api-version=2022-02-22 + response: + body: + string: '' + headers: + cache-control: + - no-cache + content-length: + - '0' + date: + - Tue, 23 Aug 2022 09:33:27 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-deletes: + - '14999' status: code: 200 message: OK @@ -781,49 +1292,41 @@ interactions: Connection: - keep-alive Content-Length: - - '65' + - '60' Content-Type: - application/json ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e?api-version=2017-05-15-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e","name":"ef6919bf-b827-4b18-8475-8d4a03a49d0e","type":"Microsoft.Automation/AutomationAccounts/Jobs","properties":{"jobId":"27186b79-5a20-467d-8f3a-86867b3b88c9","creationTime":"2021-07-30T06:58:23.49+00:00","provisioningState":"Processing","status":"New","statusDetails":"None","startedBy":null,"startTime":null,"endTime":null,"lastModifiedTime":"2021-07-30T06:58:23.49+00:00","lastStatusModifiedTime":"2021-07-30T06:58:23.49+00:00","exception":null,"parameters":{},"runOn":null,"runbook":{"name":"test-runbook-000003"}}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e","name":"ef6919bf-b827-4b18-8475-8d4a03a49d0e","type":"Microsoft.Automation/AutomationAccounts/Jobs","properties":{"jobId":"b6355695-8031-4da6-968f-f3eef50fdb90","creationTime":"2022-08-23T09:33:28.49+00:00","provisioningState":"Processing","status":"New","statusDetails":"None","startedBy":null,"startTime":null,"endTime":null,"lastModifiedTime":"2022-08-23T09:33:28.49+00:00","lastStatusModifiedTime":"2022-08-23T09:33:28.49+00:00","exception":null,"parameters":{},"runOn":null,"runbook":{"name":"test-runbook-000003"}}}' headers: cache-control: - no-cache content-length: - - '794' + - '735' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:58:23 GMT + - Tue, 23 Aug 2022 09:33:28 GMT expires: - '-1' location: - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e?api-version=2017-05-15-preview - ocp-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e?api-version=2017-05-15-preview pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-ms-location: - - https://management.azure.com/subscriptions/0b1f6471-1bf0-4dda-aec3-cb9272f09590/resourceGroups/cli_test_automation_tlmiujrw654kvpqc34zj7x2j3pxajiiroxc3gvnvhxxqpojhkpuriiu/providers/Microsoft.Automation/automationAccounts/test-account-lnugpzoglik/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e?api-version=2017-05-15-preview x-ms-ratelimit-remaining-subscription-resource-requests: - '1999' - x-powered-by: - - ASP.NET status: code: 201 message: Created @@ -841,43 +1344,37 @@ interactions: ParameterSetName: - --resource-group --automation-account-name User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs?api-version=2017-05-15-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e","name":"ef6919bf-b827-4b18-8475-8d4a03a49d0e","type":"Microsoft.Automation/AutomationAccounts/Jobs","properties":{"jobId":"27186b79-5a20-467d-8f3a-86867b3b88c9","runbook":{"name":"test-runbook-000003"},"provisioningState":"Processing","status":"New","creationTime":"2021-07-30T06:58:23.5011991+00:00","startTime":null,"lastModifiedTime":"2021-07-30T06:58:23.5011991+00:00","endTime":null,"runOn":null}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e","name":"ef6919bf-b827-4b18-8475-8d4a03a49d0e","type":"Microsoft.Automation/AutomationAccounts/Jobs","properties":{"jobId":"b6355695-8031-4da6-968f-f3eef50fdb90","runbook":{"name":"test-runbook-000003"},"provisioningState":"Processing","status":"New","creationTime":"2022-08-23T09:33:28.5105195+00:00","startTime":null,"lastModifiedTime":"2022-08-23T09:33:28.5105195+00:00","endTime":null,"runOn":null}}]}' headers: cache-control: - no-cache content-length: - - '687' + - '628' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:58:25 GMT + - Tue, 23 Aug 2022 09:33:29 GMT expires: - '-1' pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: - chunked vary: - Accept-Encoding - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff - x-ms-ratelimit-remaining-subscription-resource-entities-read: - - '1999' x-ms-ratelimit-remaining-subscription-resource-requests: - '599' - x-powered-by: - - ASP.NET status: code: 200 message: OK @@ -895,46 +1392,37 @@ interactions: ParameterSetName: - --resource-group --automation-account-name --name User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e?api-version=2017-05-15-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e","name":"ef6919bf-b827-4b18-8475-8d4a03a49d0e","type":"Microsoft.Automation/AutomationAccounts/Jobs","properties":{"jobId":"27186b79-5a20-467d-8f3a-86867b3b88c9","creationTime":"2021-07-30T06:58:23.5011991+00:00","provisioningState":"Failed","status":"Failed","statusDetails":"None","startedBy":"{scrubbed}","startTime":"2021-07-30T06:58:28.5680571+00:00","endTime":"2021-07-30T06:58:28.5680571+00:00","lastModifiedTime":"2021-07-30T06:58:28.5680571+00:00","lastStatusModifiedTime":"2021-07-30T06:58:28.5680571+00:00","exception":"At - line:1 char:1\r\n+ @C:UsersAdministratorAppDataLocalTempPowerShell.ps\r\n+ - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nThe splatting operator ''@'' - cannot be used to reference variables in an expression. ''@C:UsersAdministratorAppDataLocalTempPowerShell'' - can be used only as an argument to a command. To reference variables in an - expression use ''$C:UsersAdministratorAppDataLocalTempPowerShell''.","parameters":{},"runOn":null,"runbook":{"name":"test-runbook-000003"}}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002/jobs/ef6919bf-b827-4b18-8475-8d4a03a49d0e","name":"ef6919bf-b827-4b18-8475-8d4a03a49d0e","type":"Microsoft.Automation/AutomationAccounts/Jobs","properties":{"jobId":"b6355695-8031-4da6-968f-f3eef50fdb90","creationTime":"2022-08-23T09:33:28.5105195+00:00","provisioningState":"Processing","status":"New","statusDetails":"None","startedBy":"{scrubbed}","startTime":null,"endTime":null,"lastModifiedTime":"2022-08-23T09:33:28.5105195+00:00","lastStatusModifiedTime":"2022-08-23T09:33:28.5105195+00:00","exception":null,"parameters":{},"runOn":null,"runbook":{"name":"test-runbook-000003"}}}' headers: cache-control: - no-cache content-length: - - '1276' + - '758' content-type: - application/json; charset=utf-8 date: - - Fri, 30 Jul 2021 06:58:28 GMT + - Tue, 23 Aug 2022 09:33:30 GMT expires: - '-1' pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: - chunked vary: - Accept-Encoding - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-resource-requests: - '599' - x-powered-by: - - ASP.NET status: code: 200 message: OK @@ -954,7 +1442,7 @@ interactions: ParameterSetName: - --resource-group --name -y User-Agent: - - AZURECLI/2.26.1 azsdk-python-automationclient/unknown Python/3.8.3 (Windows-10-10.0.18362-SP0) + - AZURECLI/2.39.0 azsdk-python-automationclient/unknown Python/3.10.5 (Windows-10-10.0.22000-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_automation_000001/providers/Microsoft.Automation/automationAccounts/test-account-000002?api-version=2015-10-31 response: @@ -966,23 +1454,19 @@ interactions: content-length: - '0' date: - - Fri, 30 Jul 2021 06:58:38 GMT + - Tue, 23 Aug 2022 09:33:42 GMT expires: - '-1' pragma: - no-cache server: - - Microsoft-IIS/10.0 + - Microsoft-HTTPAPI/2.0 strict-transport-security: - max-age=31536000; includeSubDomains - x-aspnet-version: - - 4.0.30319 x-content-type-options: - nosniff x-ms-ratelimit-remaining-subscription-deletes: - '14999' - x-powered-by: - - ASP.NET status: code: 200 message: OK diff --git a/src/automation/azext_automation/tests/latest/test_automation_scenario_manual.py b/src/automation/azext_automation/tests/latest/test_automation_scenario_manual.py index 1809f6c33dd..71b49c794f8 100644 --- a/src/automation/azext_automation/tests/latest/test_automation_scenario_manual.py +++ b/src/automation/azext_automation/tests/latest/test_automation_scenario_manual.py @@ -70,7 +70,8 @@ def test_automation(self, resource_group): self.kwargs.update({ 'account_name': self.create_random_name(prefix='test-account-', length=24), 'runbook_name': self.create_random_name(prefix='test-runbook-', length=24), - 'runbook_content': RUNBOOK_CONTENT + 'runbook_content': RUNBOOK_CONTENT, + 'hybrid_runbook_worker_group_name' : self.create_random_name(prefix='hwg-', length=10) }) self.cmd('automation account create --resource-group {rg} --name {account_name} --location "West US 2"', checks=[self.check('name', '{account_name}')]) @@ -108,6 +109,20 @@ def test_automation(self, resource_group): self.cmd('automation runbook publish --resource-group {rg} --automation-account-name {account_name} ' '--name {runbook_name}') + self.cmd('automation hrwg create --resource-group {rg} --automation-account-name {account_name} --name {hybrid_runbook_worker_group_name}', + checks=[self.check('name', '{hybrid_runbook_worker_group_name}')]) + + self.cmd('automation hrwg show --resource-group {rg} --automation-account-name {account_name} --name {hybrid_runbook_worker_group_name}', + checks=[self.check('name', '{hybrid_runbook_worker_group_name}')]) + + self.cmd('automation hrwg list --resource-group {rg} --automation-account-name {account_name}', + checks=[self.check('length(@)', 1)]) + + self.cmd('automation hrwg hrw list --automation-account-name {account_name} --hybrid-runbook-worker-group-name {hybrid_runbook_worker_group_name} -g {rg}', + checks=[self.check('length(@)', 0)]) + + self.cmd('automation hrwg delete --resource-group {rg} --automation-account-name {account_name} --name {hybrid_runbook_worker_group_name} --yes') + with mock.patch('azext_automation.manual.custom._uuid', side_effect=_uuid): job = self.cmd('automation runbook start --resource-group {rg} --automation-account-name {account_name} ' '--name {runbook_name}').get_output_in_json() diff --git a/src/automation/linter_exclusions.yml b/src/automation/linter_exclusions.yml index c3a9334d1fc..17824dc0ac8 100644 --- a/src/automation/linter_exclusions.yml +++ b/src/automation/linter_exclusions.yml @@ -73,3 +73,80 @@ automation runbook wait: automation_account_name: rule_exclusions: - option_length_too_long +automation hrwg create: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long +automation hrwg list: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long +automation hrwg show: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long +automation hrwg update: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long +automation hrwg delete: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long +automation hrwg hrw create: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long + hybrid_runbook_worker_group_name: + rule_exclusions: + - option_length_too_long +automation hrwg hrw delete: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long + hybrid_runbook_worker_group_name: + rule_exclusions: + - option_length_too_long +automation hrwg hrw list: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long + hybrid_runbook_worker_group_name: + rule_exclusions: + - option_length_too_long +automation hrwg hrw move: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long + hybrid_runbook_worker_group_name: + rule_exclusions: + - option_length_too_long + hybrid_runbook_worker_id: + rule_exclusions: + - option_length_too_long +automation hrwg hrw show: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long + hybrid_runbook_worker_group_name: + rule_exclusions: + - option_length_too_long +automation hrwg hrw update: + parameters: + automation_account_name: + rule_exclusions: + - option_length_too_long + hybrid_runbook_worker_group_name: + rule_exclusions: + - option_length_too_long + \ No newline at end of file diff --git a/src/automation/setup.py b/src/automation/setup.py index 068bf4a9f9a..fc8aa496c78 100644 --- a/src/automation/setup.py +++ b/src/automation/setup.py @@ -10,7 +10,7 @@ from setuptools import setup, find_packages # HISTORY.rst entry. -VERSION = '0.1.1' +VERSION = '0.1.2' try: from azext_automation.manual.version import VERSION except ImportError: